عمليات نداء جافا سكريبت
"سوف اتصل لاحقا مرة اخرى!"
رد النداء هو وظيفة يتم تمريرها كوسيطة لدالة أخرى
تسمح هذه التقنية لوظيفة ما باستدعاء وظيفة أخرى
يمكن تشغيل وظيفة رد الاتصال بعد انتهاء وظيفة أخرى
تسلسل الوظيفة
يتم تنفيذ وظائف JavaScript بالترتيب الذي يطلق عليه. ليس في التسلسل الذي تم تحديده.
سينتهي هذا المثال بعرض "Goodbye":
مثال
function myFirst() {
myDisplayer("Hello");
}
function
mySecond() {
myDisplayer("Goodbye");
}
myFirst();
mySecond();
سينتهي هذا المثال بعرض "مرحبًا":
مثال
function myFirst() {
myDisplayer("Hello");
}
function
mySecond() {
myDisplayer("Goodbye");
}
mySecond();
myFirst();
التحكم في التسلسل
قد ترغب أحيانًا في الحصول على تحكم أفضل في وقت تنفيذ إحدى الوظائف.
افترض أنك تريد إجراء عملية حسابية ، ثم عرض النتيجة.
يمكنك استدعاء وظيفة الآلة الحاسبة ( myCalculator
) ، وحفظ النتيجة ، ثم استدعاء وظيفة أخرى ( myDisplayer
) لعرض النتيجة:
مثال
function myDisplayer(some) {
document.getElementById("demo").innerHTML = some;
}
function myCalculator(num1, num2) {
let sum = num1 + num2;
return sum;
}
let result = myCalculator(5, 5);
myDisplayer(result);
أو يمكنك استدعاء وظيفة الآلة الحاسبة ( myCalculator
) ، والسماح لوظيفة الآلة الحاسبة باستدعاء وظيفة العرض ( myDisplayer
):
مثال
function myDisplayer(some) {
document.getElementById("demo").innerHTML
= some;
}
function myCalculator(num1, num2) {
let sum = num1 + num2;
myDisplayer(sum);
}
myCalculator(5, 5);
تكمن المشكلة في المثال الأول أعلاه في أنه يجب عليك استدعاء وظيفتين لعرض النتيجة.
المشكلة في المثال الثاني ، هي أنه لا يمكنك منع وظيفة الآلة الحاسبة من عرض النتيجة.
حان الوقت الآن لإحضار رد الاتصال.
عمليات نداء جافا سكريبت
رد النداء هو وظيفة يتم تمريرها كوسيطة لدالة أخرى.
باستخدام رد الاتصال ، يمكنك استدعاء وظيفة الآلة الحاسبة ( myCalculator
) مع استدعاء ، والسماح لوظيفة الآلة الحاسبة بتشغيل رد الاتصال بعد انتهاء الحساب:
مثال
function myDisplayer(some) {
document.getElementById("demo").innerHTML
= some;
}
function myCalculator(num1, num2, myCallback) {
let sum = num1 + num2;
myCallback(sum);
}
myCalculator(5, 5, myDisplayer);
في المثال أعلاه ، myDisplayer
هو اسم الوظيفة.
يتم تمريره myCalculator()
كحجة.
عندما تمرر دالة كوسيطة ، تذكر ألا تستخدم الأقواس.
على اليمين: myCalculator (5، 5، myDisplayer) ؛
خاطئ:myCalculator (5، 5، myDisplayer ())؛
متى تستخدم رد الاتصال؟
الأمثلة أعلاه ليست مثيرة للغاية.
تم تبسيطها لتعليمك بناء جملة رد الاتصال.
حيث تتألق عمليات الاسترجاعات حقًا في الوظائف غير المتزامنة ، حيث يتعين على إحدى الوظائف انتظار وظيفة أخرى (مثل انتظار تحميل ملف).
يتم تناول الوظائف غير المتزامنة في الفصل التالي.