JavaScript - الوعود (Promises)
JavaScript - الوعود (Promises)
🔸 Promise هو كائن يمثل نتيجة عملية غير متزامنة قد تكتمل لاحقًا أو تفشل.
يساعد في كتابة كود أنظف وأسهل من الاعتماد فقط على callback functions
.
🔹 حالات الـ Promise
- Pending – قيد التنفيذ.
- Resolved (Fulfilled) – تم التنفيذ بنجاح.
- Rejected – فشلت العملية.
🔹 إنشاء Promise
const myPromise = new Promise((resolve, reject) => {
let success = true;
if (success) {
resolve("تم بنجاح");
} else {
reject("حدث خطأ");
}
});
---
🔹 التعامل مع Promise
myPromise
.then(result => {
console.log("✅", result);
})
.catch(error => {
console.error("❌", error);
});
📌 تُستخدم .then()
للنتيجة الناجحة، و.catch()
لمعالجة الأخطاء.
🔹 مثال باستخدام setTimeout
function wait(ms) {
return new Promise(resolve => {
setTimeout(() => resolve(`انتهى الانتظار بعد ${ms}ms`), ms);
});
}
wait(2000).then(msg => console.log(msg));
---
📌 مزايا Promises
- تنظيم أفضل للكود مقارنةً بـ Callback Hell.
- إمكانية الربط المتسلسل باستخدام
.then().then()
. - دعم جيد من جميع المتصفحات الحديثة.
⚠️ ملاحظات
- Promise لا تنفذ نفسها — يجب استدعاؤها أو التعامل معها.
- يمكن استخدام
finally()
لتشغيل كود في كل الأحوال.
تعليقات
إرسال تعليق