JavaScript - دوال الاسترجاع (Callbacks)

JavaScript - دوال الاسترجاع (Callbacks)

🔸 Callback هي دالة يتم تمريرها كوسيط (parameter) إلى دالة أخرى، وتُستدعى لاحقًا بعد اكتمال مهمة معينة. تُستخدم كثيرًا في البرمجة غير المتزامنة، مثل تحميل البيانات أو التعامل مع الوقت.

---

🔹 مثال بسيط على Callback


function greeting(name) {
  console.log("مرحبًا " + name);
}

function processUserInput(callback) {
  const name = "Mahmoud";
  callback(name);
}

processUserInput(greeting);

📌 هنا، تم تمرير الدالة greeting كوسيط، ثم تم استدعاؤها داخل processUserInput.

---

🔹 استخدام Callback في العمليات غير المتزامنة


setTimeout(function() {
  console.log("تم تنفيذ الدالة بعد 2 ثانية");
}, 2000);

📌 setTimeout تأخذ دالة يتم استدعاؤها بعد وقت معين — هذا أيضًا يُعتبر Callback.

---

🔹 تمرير Callback مخصص


function displayResult(result) {
  console.log("النتيجة:", result);
}

function add(a, b, callback) {
  const sum = a + b;
  callback(sum);
}

add(5, 3, displayResult); // النتيجة: 8
---

📌 لماذا نستخدم Callback؟

  • لضمان تنفيذ بعض الأوامر بعد انتهاء عملية غير متزامنة.
  • لتنظيم الكود عند التعامل مع عدة عمليات متسلسلة.
---

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

  • الاعتماد المفرط على Callbacks قد يؤدي إلى ما يُعرف بـ Callback Hell (تشابك عميق يصعب قراءته).
  • لحل هذه المشكلة، ظهرت Promises ثم async/await.

تعليقات

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

C# - Arrays

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

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