Async / Await

كلمة مفتاحية · JavaScript

1.

صيغة حديثة في JavaScript (ES2017) تتيح كتابة الكود غير المتزامن بطريقة تسلسلية وسهلة القراءة — تحوّل سلاسل الوعود المعقدة إلى تعليمات واضحة، وتسهّل إدارة استدعاءات API واستعلامات قواعد البيانات وكل عملية غير حاجبة.

2.

آلية مبنية على Promises تقدم كلمتين مفتاحيتين: `async` للتصريح عن دالة غير متزامنة تُرجع وعدًا تلقائيًا، و`await` لإيقاف التنفيذ مؤقتًا حتى يتم حل هذا الوعد — مما يقضي على «جحيم الاستدعاءات الراجعة» ويجعل الكود قابلًا للصيانة على نطاق واسع.

3.

نمط لا غنى عنه في تطوير Full-stack الحديث يُستخدم على جانب العميل (React، Next.js) وجانب الخادم (Node.js، Express.js) على حد سواء — يضمن أداءً مثاليًا من خلال تحرير الخيط الرئيسي أثناء عمليات الإدخال/الإخراج كاستدعاءات الشبكة أو قراءة الملفات.

انظر أيضاً
Promiseغير متزامنNode.jsAPI

لإنشاء دالة غير متزامنة في JavaScript، يكفي وضع الكلمة المفتاحية `async` قبل تعريف الدالة. على سبيل المثال: `async function fetchData() const response = await fetch('/api/data'); return response.json(); `. تحوّل الكلمة المفتاحية `async` القيمة المُرجعة تلقائيًا إلى وعد، وتُتيح استخدام `await` داخل جسم الدالة. هذه هي الصيغة المعتمدة التي نستخدمها في جميع تطبيقاتنا لإدارة الاتصالات مع Backend بشكل سليم.

الدالة غير المتزامنة هي دالة مُعلنة بالكلمة المفتاحية `async` تُرجع ضمنيًا Promise وتسمح باستخدام الكلمة المفتاحية `await` في جسمها. على عكس الدالة العادية التي تُنفَّذ بشكل متزامن وحاجب، فإنها تحرر الخيط الرئيسي أثناء انتظار عملية طويلة (استدعاء شبكي، مؤقت، قراءة ملف). هذه الآلية ضرورية للحفاظ على استجابة تطبيق الويب وتوفير تجربة مستخدم سلسة دون تجميد الواجهة.

الدالة غير المتزامنة هي دالة قادرة على تنفيذ عمليات في الخلفية دون حظر بقية التطبيق. في JavaScript، يتم إنشاؤها بالكلمة المفتاحية `async` وتسمح بـ«إيقاف» تنفيذها مؤقتًا بفضل `await` حتى تنتهي مهمة طويلة. هذا هو النمط الذي نستخدمه يوميًا في Async Code لتنسيق استدعاءات API والتفاعلات مع قواعد البيانات والمعالجات المعقدة لتطبيقات React و Next.js الخاصة بنا.