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() لتشغيل كود في كل الأحوال.

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework