русский  עברית
tadam logo
Нашли ошибку в тексте?
Отметьте её курсором и нажмите
Ctrl + Enter
Проверка орфографии Xhtml.co.il
Orphus system
Рассылка
Присоединитесь к списку рассылки для получения последних новостей

Введите адрес электронной почты:

deferred.pipe( [doneFilter,] [failFilter] )

Возвращает: Обещание
Описание: Служебный метод для фильтрации и/или прицепления отложенных объектов.

deferred.pipe( [doneFilter,] [failFilter] )

Добавлена в версию: 1.6
doneFilter
Дополнительная функция, которая вызывается когда Отложенный объект решен.
failFilter
Дополнительная функция, которая вызывается когда Отложенный объект откланен.

deferred.pipe( [doneFilter] [, failFilter] [, progressFilter] )

Добавлена в версию: 1.7
doneFilter
Дополнительная функция, которая вызывается когда Отложенный объект решен.
failFilter
Дополнительная функция, которая вызывается когда Отложенный объект откланен.
progressFilter
Дополнительная функция, которая вызывается, когда прогресс уведомления направляется в Отсроченный объект.

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

Примеры

Пример 1

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

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 );
});

Пример 2

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

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 );
});

Пример 3

Сеть задач:

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
});

Была ли эта информация полезной?
   

Комментарии