الفرق بين المراجعتين لصفحة: «jQuery/deferred/pipe»

من موسوعة حسوب
لا ملخص تعديل
لا ملخص تعديل
سطر 74: سطر 74:
[[تصنيف:jQuery]]
[[تصنيف:jQuery]]
[[تصنيف:jQuery Method]]
[[تصنيف:jQuery Method]]
[[تصنيف:jQuery Data]]
[[تصنيف:jQuery Deferred Object]]
[[تصنيف:jQuery Deprecated]]

مراجعة 09:33، 9 مايو 2018

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

أُهمِلَت مع الإصدار: 1.8.

القيمة المعادة

يُعيد كائنًا من النوع Promise.

الوصف

تابع أداة يُستخدم لترشيح و/أو تقييد الكائنات المؤجلة Deferreds.

deferred.pipe ([doneFilter] [، failFilter])‎

أُضيف مع الإصدار: 1.6.

doneFilter

هو دالة اختيارية تُستدعى عند حل الكائن المؤجل Deferred وهو على الشكل Function()‎.

failFilter

هو دالة اختيارية تُستدعى عند رفض الكائن المؤجل Deferred وهو على الشكل Function()‎.

أُضيف مع الإصدار: 1.7.

deferred.pipe ([doneFilter] [، failFilter] [، progressFilter])‎

doneFilter

هو دالة اختيارية تُستدعى عند حل الكائن المؤجل Deferred وهو على الشكل Function()‎.

failFilter

هو دالة اختيارية تُستدعى عند رفض الكائن المؤجل Deferred وهو على الشكل Function()‎.

progressFilter

هو دالة اختيارية تُستدعى عند إرسال إشعارات التقدُّم للكائن المؤجل Deferred وهو على الشكل Function()‎.

إشعار الإهمال

اعتبارًا من إصدار jQuery 1.8، أهمل استخدام التابع deferred.pipe()‎. ويجب استخدام التابع deferred.then()‎، الذي يحل محله بدلاً منه.

يُعيد التابع deferred.pipe()‎ كائن Promise جديدًا يعمل على ترشيح حالات وقيم الكائن المؤجل من خلال إحدى الدالات.

تُرشِّح الدالتين doneFilter و failFilter حالات قبول ورفض الكائن المؤجل الأصلية وقيمه. وبدءًا من إصدار jQuery 1.7، يقبل هذا التابع أيضًا الدالة progressFilter لترشيح أية دوال رد نداء للمؤجل الأصلي للتوابع notify أو notifyWith. يمكن لدوال الترشيح هذه أن تعيد قيمة جديدة لتمرر إلى دوال ردود نداء كائنات Promise done()‎ أو fail()‎، أو يمكنها إعادة كائن آخر يمكن مراقبته (Deferred، أو Promise، وما إلى ذلك) والذي سيمرر حالة قبول أو رفض هذا الكائن وقيمه إلى دوال ردود نداء كائنات Promise. إذا كانت دالة الترشيح المستخدمة هي null أو غير محددة، فسيحل كائن Promise أو يُرفض بنفس قيم الأصل.

أمثلة

ترشيح قيمة قبول الكائن:

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

مهام مُعادة كسلسلة (chain) :

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

مصادر