jQuery 3.3

deferred.pipe()




jquery

deferred.pipe ([doneFilter] [، failFilter]) الإرجاع: Promise version deprecated: 1.8

الوصف: طريقة المساعدة لتصفية و / أو سلسلة مؤجلة.

  • الإصدار الذي تمت إضافته: 1.6 deferred.pipe ([doneFilter] [، failFilter])

    • doneFilter
      النوع: Function ()
      وظيفة اختيارية تسمى عندما يتم حل "المؤجل".
    • failFilter
      النوع: Function ()
      وظيفة اختيارية يتم استدعائها عند رفض "التأجيل".
  • الإصدار المضاف: 1.7 deferred.pipe ([doneFilter] [، failFilter] [، progressFilter])

    • doneFilter
      النوع: Function ()
      وظيفة اختيارية تسمى عندما يتم حل "المؤجل".
    • failFilter
      النوع: Function ()
      وظيفة اختيارية يتم استدعائها عند رفض "التأجيل".
    • progressFilter
      النوع: Function ()
      وظيفة اختيارية يتم استدعائها عند إرسال إخطارات التقدم للمؤجلة.

إشعار الإيقاف : اعتبارًا من jQuery 1.8 ، تم إهمال طريقة deferred.pipe (). يجب استخدام طريقة deferred.then() ، التي تحل محلها ، بدلاً من ذلك.

ترجع طريقة deferred.pipe() وعدًا جديدًا يعمل على تصفية حالة وقيم المؤجل خلال إحدى الدالات. doneFilter failFilter الأصلية التي تم حلها / رفضها. اعتبارًا من jQuery 1.7 ، تقبل هذه الطريقة أيضًا وظيفة progressFilter التصفية لتصفية أية مكالمات notify المؤجل الأصلي أو notifyWith بطرق. يمكن لوظائف التصفية هذه أن ترجع قيمة جديدة ليتم تمريرها إلى عمليات الاسترداد التي تم done() أو fail() ، أو يمكنها إرجاع كائن آخر يمكن ملاحظته (مؤجل ، وعد ، وما إلى ذلك) والذي سينتج حالة وقيم الحل / الرفض إلى الوعد بالأنابيب. إذا كانت وظيفة الفلتر المستخدمة 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
});