تكرار السؤال: …
الإجابة المختصرة
async/await هي مجرد Syntactic Sugar مبنية فوق الـ Promises تجعل الكود يبدو ككود متزامن وتتيح معالجة الأخطاء بـ try/catch وتحسن قراءة الـ stack traces.
الشرح
الميزة الجوهرية لـ async/await تكمن في سهولة القراءة ومنع تداخل الـ then/catch المتسلسل، وتوحيد معالجة الأخطاء المتزامنة وغير المتزامنة في كتلة try/catch واحدة، بالإضافة إلى إتاحة خاصية async stack traces.
مثال بالكود
try {
const user = await getUser(id);
} catch (err) {
handleError(err);
}أخطاء شائعة
- نسيان إضافة كلمة await مما يعيد كائن Promise بدلاً من القيمة المطلوبة وينتج أخطاء صامتة.
أسئلة متابعة
- كيف تنتقل الأخطاء في الكود غير المتزامن وما خطورة الأخطاء داخل الـ callbacks التقليدية؟
- ما هي ميزة Top-Level Await في وحدات ES Modules بـ Node.js وما هي محاذير استخدامها؟