في العقدة، يتم استخدام الانتظار لإيقاف التنفيذ مؤقتًا بطريقة غير محظورة، وانتظار الطلب غير المتزامن للوعد، وانتظار الطريقة غير المتزامنة لإكمال التنفيذ؛ ويمكن استخدام الانتظار في وظائف غير متزامنة لانتظار القيمة المرجعة لوظيفة غير متزامنة يعود الوعد إذا لم ينجح الرفض، فسيتم طرح قيمة الرفض ويمكن التقاطها عن طريق "المحاولة/الالتقاط".
بيئة تشغيل هذه المقالة: نظام Windows 10، إصدار Nodejs 12.19.0، كمبيوتر Dell G3.
تم تقديم استخدام Async/await في Node.js 7، ولكن من الممكن فقط تنشيط وظيفة async/await رسميًا في Node.js 8 وJavascript V8.
ما هو المزامنة/الانتظار؟ كيفية تنفيذ عمليات غير متزامنة باستخدام Promise في الماضي توضح الحالة التالية كيفية استخدام Promise and Fetch API لجلب البيانات:
الدالة getTrace () { return fetch('https://www.jdon.com', { الطريقة: 'get' }) } getTrace() .then() .catch()باستخدام async/await، يمكنك إيقاف التنفيذ مؤقتًا بطريقة غير محظورة وانتظار عودة النتيجة. إذا أعاد الوعد رفضًا غير ناجح، فسيتم طرح قيمة الرفض ويمكن التقاطها عن طريق المحاولة/التقاط. يمكن كتابة الحالة أعلاه على النحو التالي باستخدام المزامنة/الانتظار:
وظيفة غير متزامنة getTrace () { Let pageContenttry {pageContent = انتظار الجلب('https://www.jdon.com', { الطريقة: 'get' }) } Catch (ex) { console.error(ex) } return pageContent} getTrace() .ثم()دعونا نلقي نظرة على حالة استخدام async/await في Node.js، واستخدام settimeout لتأخير تنفيذ دالة، واستخدام تغليف async/await:
// app.jsconst timeout = function (delay) { return new Promise((حل، رفض) => { setTimeout(() => {resolve() }, تأخير) }) } مؤقت وظيفة غير متزامنة () { console.log ("بدأ الموقت") في انتظار Promise.resolve(timeout(100)); console.log('انتهى الموقت') } timer()قم بإنشاء ملف app.js وقم بتشغيله:
عقدة app.js
إذا لم يكن من الممكن تشغيله، فقد يكون ذلك إصدارًا ليليًا ولا يدعم رسميًا المزامنة/الانتظار، ويجب أن يكون سطر الأوامر كما يلي:
العقدة --harmony-async-await app.js
التعلم الموصى به: "الفيديو التعليمي لـnodejs"
ما ورد أعلاه هو تفاصيل كيفية استخدام الانتظار في العقدة لمزيد من المعلومات، يرجى الانتباه إلى المقالات الأخرى ذات الصلة على هذا الموقع!