"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية التعامل مع عمليات الاسترجاعات غير المتزامنة باستخدام الانتظار؟

كيفية التعامل مع عمليات الاسترجاعات غير المتزامنة باستخدام الانتظار؟

تم النشر بتاريخ 2024-11-11
تصفح:652

How to Handle Asynchronous Callbacks Using Await?

التعامل مع رد الاتصال غير المتزامن مع انتظار

في سيناريوهات معينة، أثناء استخدام عمليات رد الاتصال مثل:

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