Обработка выполнения deferred.pipe()

deferred.pipe() – с помощью этого метода можно проводить предварительную обработку параметров, которые будут передаваться в обработчики смены состояния объекта deffered.

Возможны два варианта использования функции

deferred.pipe( [doneFilter ] [, failFilter ] )
  • doneFilter – функция, которая запустится, когда объект Deferred перейдёт в состояние неудачного выполнения (resolved);
  • failFilter – функция, которая запустится, когда объект Deferred перейдёт в состояние удачного выполнения (rejected);
deferred.pipe( [doneFilter ] [, failFilter ] [, progressFilter ] )
  • doneFilter – функция или массив функций обработчиков перехода объекта Deferred в состояние неудачного выполнения (resolved);
  • failFilter – функция или массив функций обработчиков перехода объекта Deferred в состояние удачного выполнения (rejected);
  • progressFilter – функция, которая запустится, как только объекту Deferred будет выставлено одно из состояний.

Пример 1

Во второй обработчик первым и единственным параметром попадает значение, которое вернёт первый обработчик. Deferred переходит в состояние неудачного выполнения.

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

Суть примера аналогична первому, но Deferred переходит в состояние удачного выполнения.

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

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *