Spec-Zone.ru › jQuery

deferred.pipe()

deferred.pipe( [doneFilter ] [, failFilter ] )Возвращает: Promiseверсия устарела: 1.8

Описание: Утилитарный метод для фильтрации и/или цепочки Deferreds.

  • версия добавлена: 1.6deferred.pipe( [doneFilter ] [, failFilter ] )

    • doneFilter
      Тип: Функция()
      Необязательная функция, вызываемая при разрешении Deferred.
    • failFilter
      Тип: Функция()
      Необязательная функция, вызываемая при отклонении Deferred.
  • версия добавлена: 1.7deferred.pipe( [doneFilter ] [, failFilter ] [, progressFilter ] )

    • doneFilter
      Тип: Функция()
      Необязательная функция, вызываемая при разрешении Deferred.
    • failFilter
      Тип: Функция()
      Необязательная функция, вызываемая при отклонении Deferred.
    • progressFilter
      Тип: Функция()
      Необязательная функция, вызываемая при отправке уведомлений о прогрессе в Deferred.

Предупреждение об устаревании:Начиная с jQuery 1.8, метод deferred.pipe() устарел. Вместо него следует использовать метод deferred.then().

Метод deferred.pipe() возвращает новую промиссию, которая фильтрует состояние и значения deferred с помощью функции. Функции doneFilter и failFilter фильтруют исходное состояние разрешения/отклонения и значения. **Начиная с jQuery 1.7** метод также принимает функцию progressFilter для фильтрации любых вызовов исходного deferred к методам notify или notifyWith. Эти фильтрующие функции могут возвращать новое значение, которое будет передано в обратные вызовы промиссии-последовательности в done() или fail() или они могут вернуть другой наблюдаемый объект (Deferred, Promise и т.д.), который передаст своё состояние разрешения/отклонения и значения обратным вызовам промиссии-последовательности. Если используемая фильтрующая функция является null, или не указана, то промиссия-последовательность будет разрешена или отклонена с теми же значениями, что и исходная.

Примеры:

Фильтровать значение разрешения:

var defer = $.Deferred(),
  filtered = defer.pipe(function( value ) {
    return value * 2;
  });
 
defer.resolve( 5 );
filtered.done(function( value ) {
  alert( "Value is ( 2*5 = ) 10: " + value );
});

Фильтровать значение отклонения:

var defer = $.Deferred(),
  filtered = defer.pipe( null, function( value ) {
    return value * 3;
  });
 
defer.reject( 6 );
filtered.fail(function( value ) {
  alert( "Value is ( 3*6 = ) 18: " + value );
});

Цепочки задач:

var request = $.ajax( url, { dataType: "json" } ),
  chained = request.pipe(function( data ) {
    return $.ajax( url2, { data: { user: data.userId } } );
  });
 
chained.done(function( data ) {
  // data retrieved from url2 as provided by the first request
});

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquery.com/deferred.pipe

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API