الفرق بين المراجعتين لصفحة: «jQuery/deferred/then»
Khaled-yassin (نقاش | مساهمات) طلا ملخص تعديل |
ط استبدال النص - 'JQuery' ب'jQuery' |
||
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة) | |||
سطر 6: | سطر 6: | ||
=== الوصف === | === الوصف === | ||
يُضيف هذا التابع معالجات تُستدعَى عند قبول الكائن المؤجل أو رفضه أو ما زال قيد التقدم. | |||
=== <code>deferred.then( doneFilter [, failFilter ] [, progressFilter ] )</code> === | === <code>deferred.then( doneFilter [, failFilter ] [, progressFilter ] )</code> === | ||
سطر 12: | سطر 12: | ||
==== <code>doneFilter</code> ==== | ==== <code>doneFilter</code> ==== | ||
هو دالة تُستدعى عند قبول الكائن المؤجل وهو على الشكل [[JavaScript/Function|Function()]]. | هو دالة تُستدعى عند قبول الكائن المؤجل وهو على الشكل <code>[[JavaScript/Function|Function()]]</code>. | ||
==== <code>failFilter</code> ==== | ==== <code>failFilter</code> ==== | ||
هو دالة اختيارية تُستدعى عند رفض الكائن المؤجل وهو على الشكل [[JavaScript/Function|Function()]]. | هو دالة اختيارية تُستدعى عند رفض الكائن المؤجل وهو على الشكل <code>[[JavaScript/Function|Function()]]</code>. | ||
==== <code>progressFilter</code> ==== | ==== <code>progressFilter</code> ==== | ||
هو دالة إختيارية تُستدعى عند إرسال إشعارات التقدُّم للكائن المؤجل وهو على الشكل [[JavaScript/Function|Function()]]. | هو دالة إختيارية تُستدعى عند إرسال إشعارات التقدُّم للكائن المؤجل وهو على الشكل <code>[[JavaScript/Function|Function()]]</code>. | ||
=== <code>deferred.then( doneCallbacks, failCallbacks )</code> === | === <code>deferred.then( doneCallbacks, failCallbacks )</code> === | ||
أُضيف مع الإصدار: [http://api.jquery.com/category/version/1.5/ 1.5]، | أُضيف مع الإصدار: [http://api.jquery.com/category/version/1.5/ 1.5]، وحذف مع الإصدار: [http://api.jquery.com/category/version/1.8/ 1.8]. | ||
==== <code>doneCallbacks</code> ==== | ==== <code>doneCallbacks</code> ==== | ||
هو دالة، أو مصفوفة من الدوال، تُستدعى عند قبول الكائن المؤجل وهو على الشكل [[JavaScript/Function|Function()]] | هو دالة، أو مصفوفة من الدوال، تُستدعى عند قبول الكائن المؤجل وهو على الشكل <code>[[JavaScript/Function|Function()]]</code>. | ||
==== <code>failCallbacks</code> ==== | ==== <code>failCallbacks</code> ==== | ||
هو دالة، أو مصفوفة من الدوال، تُستدعى عند رفض الكائن المؤجل وهو على الشكل [[JavaScript/Function|Function()]]. | هو دالة، أو مصفوفة من الدوال، تُستدعى عند رفض الكائن المؤجل وهو على الشكل <code>[[JavaScript/Function|Function()]]</code>. | ||
=== <code>deferred.then( doneCallbacks, failCallbacks [, progressCallbacks ] )</code> === | === <code>deferred.then( doneCallbacks, failCallbacks [, progressCallbacks ] )</code> === | ||
أُضيف مع الإصدار: [http://api.jquery.com/category/version/1.7/ 1.7]، | أُضيف مع الإصدار: [http://api.jquery.com/category/version/1.7/ 1.7]، وحذف مع الإصدار: [http://api.jquery.com/category/version/1.8 1.8]. | ||
==== <code>doneCallbacks</code> ==== | ==== <code>doneCallbacks</code> ==== | ||
هو دالة، أو مصفوفة من الدوال، تُستدعى عند قبول الكائن المؤجل وهو على الشكل [[JavaScript/Function|Function()]]. | هو دالة، أو مصفوفة من الدوال، تُستدعى عند قبول الكائن المؤجل وهو على الشكل <code>[[JavaScript/Function|Function()]]</code>. | ||
==== <code>failCallbacks</code> ==== | ==== <code>failCallbacks</code> ==== | ||
هو دالة، أومصفوفة من الدوال، تُستدعى عند رفض الكائن المؤجل وهو على الشكل [[JavaScript/Function|Function()]]. | هو دالة، أومصفوفة من الدوال، تُستدعى عند رفض الكائن المؤجل وهو على الشكل <code>[[JavaScript/Function|Function()]]</code>. | ||
==== <code>progressCallbacks</code> ==== | ==== <code>progressCallbacks</code> ==== | ||
هو دالة، أومصفوفة من الدوال، تُستدعى عند إشعار تقدُّم الكائن المؤجل وهو على الشكل [[JavaScript/Function|Function()]]. | هو دالة، أومصفوفة من الدوال، تُستدعى عند إشعار تقدُّم الكائن المؤجل وهو على الشكل <code>[[JavaScript/Function|Function()]]</code>. | ||
قبل jQuery 1.8، كان يمكن أن تكون الوسائط دالة أو مصفوفة من الدوال. | قبل jQuery 1.8، كان يمكن أن تكون الوسائط دالة أو مصفوفة من الدوال. | ||
سطر 45: | سطر 45: | ||
لجميع التوقيعات، يمكن أن تكون الوسائط <code>null</code> إذا لم تكن هناك رغبة في رد نداء من هذا النوع. بدلاً من ذلك، استخدم <code>[[jQuery/deferred/done|.done()]]</code> أو <code>[[jQuery/deferred/fail|.fail()]]</code> أو <code>[[jQuery/deferred/progress|.progress()]]</code> لتعيين نوع واحد فقط من رد النداء بدون ترشيح الحالة أو القيم. | لجميع التوقيعات، يمكن أن تكون الوسائط <code>null</code> إذا لم تكن هناك رغبة في رد نداء من هذا النوع. بدلاً من ذلك، استخدم <code>[[jQuery/deferred/done|.done()]]</code> أو <code>[[jQuery/deferred/fail|.fail()]]</code> أو <code>[[jQuery/deferred/progress|.progress()]]</code> لتعيين نوع واحد فقط من رد النداء بدون ترشيح الحالة أو القيم. | ||
بدءًا من jQuery 1.8، يُعيد التابع <code>deferred.then()</code> كائن promise جديدًا يمكنه ترشيح حالة وقيم الكائن المؤجل من خلال دالة، ليحل محل التابع <code>[[jQuery/deferred/pipe|deferred.pipe()]]</code> المهمل الآن. تُرشِّح الدالتين <code>doneFilter</code> و <code>failFilter</code> حالات قبول ورفض الكائن المؤجل الأصلية وقيمه. ترشح دالة <code>progressFilter</code> أية استدعاءات إلى تابعي <code>[[jQuery/deferred/notify|notify]]</code> و <code>[[jQuery/deferred/notifyWith|notifyWith]]</code> للكائن المؤجل الأصلي. يمكن لدوال الترشيح هذه إعادة قيمة جديدة تمرر إلى تابعي <code>[[jQuery/deferred/done|.done()]]</code> أو <code>[[jQuery/deferred/fail|.fail()]]</code> لدوال ردود نداء الكائن promise، أو يمكنها إعادة كائن آخر يمكن ملاحظته (Deferred و Promise ، وما إلى ذلك) والذي سيمرر حالة وقيم القبول أو الرفض إلى دوال ردود نداء الكائن promise. إذا كانت دالة الترشيح المستخدمة <code>null</code> أو غير محددة، فسيقبل promise أو يرفض بنفس قيم الأصل. | |||
تُنفَّذ ردود النداء بالترتيب الذي أُضيفت به. ولما كان التابع <code>deferred.then</code> يعيد Promise، يمكن إعادة الكائن Promise كسلسلة (chain) من خلال التابع، بما في ذلك توابع | تُنفَّذ ردود النداء بالترتيب الذي أُضيفت به. ولما كان التابع <code>deferred.then</code> يعيد Promise، يمكن إعادة الكائن Promise كسلسلة (chain) من خلال التابع، بما في ذلك توابع <code>.then()</code> الإضافية. | ||
=== أمثلة === | === أمثلة === | ||
لما كان التابع <code>[[jQuery/jQuery | لما كان التابع <code>[[jQuery/jQuery/get|jQuery.get]]</code> يُعيد كائن <code>jqXHR</code>، وهي مشتقة من كائن مؤجل، يمكننا أن نلحق معالجات باستخدام التابع <code>.then</code>.<syntaxhighlight lang="jquery"> | ||
$.get( "test.php" ).then( | $.get( "test.php" ).then( | ||
function() { | function() { | ||
سطر 63: | سطر 63: | ||
<head> | <head> | ||
<meta charset="utf-8"> | <meta charset="utf-8"> | ||
<title>deferred.then | <title>deferred.then مثال على التابع</title> | ||
<script src="https://code.jquery.com/jquery-1.10.2.js"></script> | <script src="https://code.jquery.com/jquery-1.10.2.js"></script> | ||
</head> | </head> | ||
<body> | <body> | ||
<button> | <button>قبول المُرشَّح</button> | ||
<p></p> | <p></p> | ||
سطر 110: | سطر 110: | ||
== مصادر == | == مصادر == | ||
* [http://api.jquery.com/deferred.then/ صفحة التابع deferred.then() في توثيق jQuery الرسمي]. | * [http://api.jquery.com/deferred.then/ صفحة التابع deferred.then() في توثيق jQuery الرسمي]. | ||
[[تصنيف:jQuery]] | [[تصنيف:jQuery]] | ||
[[تصنيف:jQuery Method]] | [[تصنيف:jQuery Method]] | ||
[[تصنيف:jQuery Deferred]] | [[تصنيف:jQuery Deferred]] |
المراجعة الحالية بتاريخ 09:21، 24 يونيو 2018
deferred.then( doneFilter [, failFilter ] [, progressFilter ] )
القيمة المعادة
يُعيد كائنًا من النوع Promise.
الوصف
يُضيف هذا التابع معالجات تُستدعَى عند قبول الكائن المؤجل أو رفضه أو ما زال قيد التقدم.
deferred.then( doneFilter [, failFilter ] [, progressFilter ] )
أُضيف مع الإصدار: 1.8.
doneFilter
هو دالة تُستدعى عند قبول الكائن المؤجل وهو على الشكل Function()
.
failFilter
هو دالة اختيارية تُستدعى عند رفض الكائن المؤجل وهو على الشكل Function()
.
progressFilter
هو دالة إختيارية تُستدعى عند إرسال إشعارات التقدُّم للكائن المؤجل وهو على الشكل Function()
.
deferred.then( doneCallbacks, failCallbacks )
أُضيف مع الإصدار: 1.5، وحذف مع الإصدار: 1.8.
doneCallbacks
هو دالة، أو مصفوفة من الدوال، تُستدعى عند قبول الكائن المؤجل وهو على الشكل Function()
.
failCallbacks
هو دالة، أو مصفوفة من الدوال، تُستدعى عند رفض الكائن المؤجل وهو على الشكل Function()
.
deferred.then( doneCallbacks, failCallbacks [, progressCallbacks ] )
أُضيف مع الإصدار: 1.7، وحذف مع الإصدار: 1.8.
doneCallbacks
هو دالة، أو مصفوفة من الدوال، تُستدعى عند قبول الكائن المؤجل وهو على الشكل Function()
.
failCallbacks
هو دالة، أومصفوفة من الدوال، تُستدعى عند رفض الكائن المؤجل وهو على الشكل Function()
.
progressCallbacks
هو دالة، أومصفوفة من الدوال، تُستدعى عند إشعار تقدُّم الكائن المؤجل وهو على الشكل Function()
.
قبل jQuery 1.8، كان يمكن أن تكون الوسائط دالة أو مصفوفة من الدوال.
لجميع التوقيعات، يمكن أن تكون الوسائط null
إذا لم تكن هناك رغبة في رد نداء من هذا النوع. بدلاً من ذلك، استخدم .done()
أو .fail()
أو .progress()
لتعيين نوع واحد فقط من رد النداء بدون ترشيح الحالة أو القيم.
بدءًا من jQuery 1.8، يُعيد التابع deferred.then()
كائن promise جديدًا يمكنه ترشيح حالة وقيم الكائن المؤجل من خلال دالة، ليحل محل التابع deferred.pipe()
المهمل الآن. تُرشِّح الدالتين doneFilter
و failFilter
حالات قبول ورفض الكائن المؤجل الأصلية وقيمه. ترشح دالة progressFilter
أية استدعاءات إلى تابعي notify
و notifyWith
للكائن المؤجل الأصلي. يمكن لدوال الترشيح هذه إعادة قيمة جديدة تمرر إلى تابعي .done()
أو .fail()
لدوال ردود نداء الكائن promise، أو يمكنها إعادة كائن آخر يمكن ملاحظته (Deferred و Promise ، وما إلى ذلك) والذي سيمرر حالة وقيم القبول أو الرفض إلى دوال ردود نداء الكائن promise. إذا كانت دالة الترشيح المستخدمة null
أو غير محددة، فسيقبل promise أو يرفض بنفس قيم الأصل.
تُنفَّذ ردود النداء بالترتيب الذي أُضيفت به. ولما كان التابع deferred.then
يعيد Promise، يمكن إعادة الكائن Promise كسلسلة (chain) من خلال التابع، بما في ذلك توابع .then()
الإضافية.
أمثلة
لما كان التابع jQuery.get
يُعيد كائن jqXHR
، وهي مشتقة من كائن مؤجل، يمكننا أن نلحق معالجات باستخدام التابع .then
.
$.get( "test.php" ).then(
function() {
alert( "$.get succeeded" );
}, function() {
alert( "$.get failed!" );
}
);
ترشيح قيمة القبول:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>deferred.then مثال على التابع</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<button>قبول المُرشَّح</button>
<p></p>
<script>
var filterResolve = function() {
var defer = $.Deferred(),
filtered = defer.then(function( value ) {
return value * 2;
});
defer.resolve( 5 );
filtered.done(function( value ) {
$( "p" ).html( "Value is ( 2*5 = ) 10: " + value );
});
};
$( "button" ).on( "click", filterResolve );
</script>
</body>
</html>
ترشيح قيمة الرفض:
var defer = $.Deferred(),
filtered = defer.then( null, function( value ) {
return value * 3;
});
defer.reject( 6 );
filtered.fail(function( value ) {
alert( "Value is ( 3*6 = ) 18: " + value );
});
مهام مُعادة كسلسلة (chain) : البيانات المُستردّة من url2 كما هو منصوص عليه في الطلب الأول.
var request = $.ajax( url, { dataType: "json" } ),
chained = request.then(function( data ) {
return $.ajax( url2, { data: { user: data.userId } } );
});
chained.done(function( data ) {
});