التعامل مع رد الاتصال غير المتزامن مع انتظار
في سيناريوهات معينة، أثناء استخدام عمليات رد الاتصال مثل:
test() { api.on( 'someEvent', function( response ) { return response; }); }
قد تحتاج إلى دمج عدم التزامن. لجعل هذه الوظيفة غير متزامنة واستخدامها في الانتظار، يجب عليك أولاً التأكد من أن وظيفة رد الاتصال (someEvent) تُرجع وعدًا. وذلك لأن الوظائف غير المتزامنة تعتمد على الوعود لإكمال العمليات غير المتزامنة.
نسخة منقحة من api.on():
function apiOn(event) { return new Promise(resolve => { api.on(event, response => resolve(response)); }); }
باستخدام هذه الوظيفة المحدثة، يمكنك الآن تعديل test() لتكون وظيفة غير متزامنة:
async function test() { return await apiOn( 'someEvent' ); }
ومع ذلك، فإن الوظائف غير المتزامنة ترجع أيضًا وعودًا، وبالتالي فإن قيمة النتيجة الفعلية للاختبار () هي وعد يمكن حله داخل وظيفة غير متزامنة أخرى:
async function whatever() { // snip const response = await test(); // use response here // snip }
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3