جافا سكريبت ما هو ال Promise

هو واحد من المبادئ التي تربك اغلب الأشخاص الذين يتعلمون لغة جافا سكربت، وهي مهمة جدا لازم تفهمها وتتعلمها كويس جداً لان كل شغلك تقريبا يعتمد عليها.

عشان تفهم ما هو ال Promise لازم أول تفهم كيف تشتغل او تعمل الجافا سكربت؟

الجافا سكريبت في طريقة تشغيلها الطبيعية فهي تقوم بتنفيذ الكود سطر سطر وتسمى هذه العملية بي Interpreted , إذا  كل واحد فيهم يأخذ زمن طويل في التنفيذ فهنا البرنامج يظل في وضع التنفيذ بدون ما يقدر ينفذ حاجة تانية وتسمى هذه العملية Synchronousl Programming.

هل بهذا المفهوم هل لا أستطيع استخدام جافا سكريبت في اي تطبيق؟

الحل هو أن نترك الكود الذ يأخذ زمن في التنفيذ Asynchronous كالمثال التالي

async function Student() {

Const name = await getStudentName() ;

}

 

في الدالة السابقة تركنا الدالة كلها async والجزء الذي يحتاج زمن ويستجلب البيانات يبقى  await able ببساطة هنا بتقول للجافا سكريبت طالما الكود سوف يأخذ وقت هنا فما توقف اي تنفيذ اي حاجة في التطبيق ويسمح بمناداة هذه الدالة من مكان آخر وبرضو تبقى await لحد الوصول إلى أنه هذه الجزئية تقدر تكمل التنفيذ.

طيب ما هو دور ال Promise في الموضوع؟

الفكرة انه ال Promise يحتوي على حالة status موضع التنفيذ هل هي خلصت fulfilled ولا هل هي rejected ، ولو هي لسه شغالة في التنفيذ تكون الحالة Pending في ال Promise.

هنا ال Promise بحل مشكلة ال Callback Hell ال كانت موجودة في الجافا سكريبت والتي تظهر الكود مزعج في عملية التعديل عليه، لكن من خلال ال Promise بقدر أخلى إذا نجح التنفيذ.    .then() و إذا فشل التنفيذ.catch()


Press ESC to close