في جافا سكريبت، Promise
هي كائن يُستخدم لتمثيل عملية غير متزامنة (asynchronous operation) قد تكتمل الآن أو في المستقبل أو لا تكتمل إطلاقًا. ظهرت Promises لحل مشاكل الـ callback hell وتحسين التعامل مع العمليات التي تستغرق وقتًا مثل طلبات HTTP، القراءة من ملفات، أو العمليات المؤجلة بشكل عام.
✅ أولًا: ما هو الـ Promise؟
Promise
هو كائن يمثل قيمة ناتجة عن عملية غير متزامنة، والتي يمكن أن تكون في إحدى الحالات التالية:
الحالة | الوصف |
---|---|
pending | جاري تنفيذ العملية ولم تكتمل بعد |
fulfilled | العملية اكتملت بنجاح وتم إنتاج نتيجة |
rejected | العملية فشلت بسبب خطأ وتم إرجاع سبب الرفض (خطأ مثلاً) |
🧠 الشكل الأساسي للـ Promise
const promise = new Promise((resolve, reject) => {
// عملية غير متزامنة
if (نجاح) {
resolve('تمت العملية بنجاح');
} else {
reject('حدث خطأ');
}
});
JavaScript