JavaScript - Async / Await – برمجة غير متزامنة بشكل مبسط

JavaScript - Async / Await – برمجة غير متزامنة بشكل مبسط

🔸 async / await هي طريقة حديثة ومبسطة للتعامل مع الوعود (Promises) في JavaScript. تجعل الكود غير المتزامن يبدو وكأنه متزامن، مما يُسهل القراءة والفهم.

---

🔹 كلمة async


async function sayHello() {
  return "أهلاً!";
}

sayHello().then(msg => console.log(msg)); // أهلاً!

📌 أي دالة تُسبق بـ async تُرجع تلقائيًا Promise.

---

🔹 استخدام await داخل async


function wait(ms) {
  return new Promise(resolve => {
    setTimeout(() => resolve("تم الانتظار"), ms);
  });
}

async function run() {
  console.log("ابدأ");
  const msg = await wait(2000);
  console.log(msg); // تم الانتظار
  console.log("انتهى");
}

run();

📌 await توقف التنفيذ حتى تكتمل الـ Promise ثم تُعيد النتيجة.

---

🔹 التعامل مع الأخطاء باستخدام try / catch


async function fetchData() {
  try {
    let response = await fetch("https://api.example.com/data");
    let data = await response.json();
    console.log(data);
  } catch (error) {
    console.error("حدث خطأ:", error);
  }
}
---

📌 مزايا async / await

  • تُسهل قراءة الكود المعقد.
  • تُزيل الحاجة إلى .then() و .catch() المتعددة.
  • تُشبه الكود المتزامن في المظهر والسلوك.
---

⚠️ ملاحظات مهمة

  • يجب استخدام await فقط داخل دالة async.
  • أي خطأ غير مُعالج داخل await سيُسبب رفض (reject) للـ Promise.

تعليقات

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

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

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