الحلقات غير المتزامنة في JavaScript
بينما توفر JavaScript أنواعًا مختلفة من الحلقات، يمكن إنشاء حلقة توقف التنفيذ مؤقتًا لانتظار مكالمة غير متزامنة. صعبة. وذلك لأن خلط التعليمات البرمجية المتزامنة وغير المتزامنة يمكن أن يؤدي إلى سلوك غير متوقع.الحل: تبني النهج غير المتزامن
للتغلب على هذا القيد، من الضروري احتضان الحدث بالكامل نهج يحركه جافا سكريبت. يتضمن ذلك استخدام وظيفة سيتم استدعاؤها عند اكتمال المكالمة غير المتزامنة. يمكن للحلقة بعد ذلك مواصلة التنفيذ بعد استدعاء رد الاتصال.
تقديم وظيفة asyncLoop
يمكن إنشاء وظيفة مساعدة تسمى asyncLoop لتسهيل سلوك الحلقات غير المتزامن هذا. يستغرق الأمر ثلاث معلمات:
التكرارات: عدد المرات التي يجب تشغيل الحلقة فيها.
next(): تقدم الحلقة بتكرار واحد.
يوضح المثال التالي كيفية استخدام الدالة asyncLoop لإنشاء حلقة غير متزامنة:
asyncLoop(10, (loop) => { someFunction(1, 2, (النتيجة) => { console.log(loop.iteration()); حلقة.next(); }); }, () => { console.log("انتهت الدورة"); });asyncLoop(10, (loop) => {
someFunction(1, 2, (result) => {
console.log(loop.iteration());
loop.next();
});
}, () => {
console.log('cycle ended');
});
من خلال استخدام هذا الأسلوب، يمكن لمطوري JavaScript إنشاء حلقات غير متزامنة تعمل بسلاسة في البيئة التي تعتمد على الأحداث، وتجنب المشكلات المحتملة المتعلقة بحظر البرنامج النصي والمتصفح.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3