Unetway

jQuery - Фильтрация параметров deferred

Синтаксис

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

Описание

Метод .pipe() производит предварительную обработку параметров, которые будут передаваться в обработчики смены состояния объекта deffered.

  • doneFilter - функция, которая будет получать параметры, предназначенные для обработчика удачного выполнения исходного deffered-объекта
  • failFilter - то же, что и doneFilter, только для обработчиков неудачного выполнения
  • progressFilter - аналогичен двум другим параметрам, но для обработчиков прогресса выполнения объекта 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 );
});
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
});