جافاسكربتasync و await
- أهمية async و await
- طريقة استخدام async و await
- معالجة أخطاء البرومس
أهمية async و await
نستخدم الكلمتين async و await للتعامل مع البرومس بشكل أكثر سهولة.
إذاً تنفيذ البرومس سيصبح أكثر سهولة في حال قمت باستخدام هاتين الكلمتين.
طريقة استخدام async و await
الكلمة async يمكن أن تستخدم عند تعريف الدالة التي ترجع كائن البرومس و من بعدها يصبح عليك استخدام الكملة await عند استدعاء الدالة التي تنفذ البرومس.
الكلمة await تجعل مفسر الكود ينتظر إلى حين يتم إرجاع النتيجة من البرومس سواء كانت نتيجة سليمة أو فيها خطأ. لذلك عند استخدامها لا يجب استدعاء الدالة then() من البرومس.
قبل استخدام async و await
في المثال التالي قمنا ببناء دالة إسمها fetchData() مهمتها إنشاء برومس يعطينا قيمة عشوائية بين 1 و 10 بعد مرور ثانية واحدة.
ملاحظة: جعلناه يتأخر في الرد مدة ثانية واحدة عمداً كمحاكات للمدة التي قد يسغرقها السيرفر في الرد.
مثال
لم نضف الدالة reject() في كائن البرومس عمداً حتى يكون فهم الكود أسهل.
بعد استخدام async و await
الآن سنقوم بإعادة المثال السابق مع التعديل عليه لاستخدام async و await حتى تلاحظ الفرق بين الأسلوبين.
مثال
عندما تكون الدالة ستنتظر أن يتم تنفيذ برومس فيها، فإنه يجب جعل الدالة نفسها متزامنة من خلال إضافة الكلمة async قبل الكلمة function أثناء تعريفها، و لذلك قمنا بتعريف الدالة executePromise() كدالة متزامنة.
معالجة أخطاء البرومس
في حال كنت تتعامل مع البرومس بأسلوب async و await و كان المحتمل أن يحدث خطأ ( Error ) عند التنفيذ أو أن البرومس نفسه قد يرجع قيم خاطئة فعندها يمكنك حماية الكود بواسطة try و catch كما يلي.