حلقة الأحداث وأساسيات Task مقابل Microtask
شاهدوا كيف تشغّل حلقة الأحداث الشيفرة المتزامنة أولًا، ثم microtasks، ثم tasks. وتدرّبوا باستخدام setTimeout وPromise.then وqueueMicrotask
حلقة الأحداث وأساسيات Task مقابل Microtask درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
مقدمة إلى حلقة الأحداث
الهدف: تعلّموا الترتيب الأساسي: الكود المتزامن ← المهام الصغيرة (Promise/queueMicrotask) ← المهام (setTimeout).
- المتزامن أولًا
- المهام الصغيرة تاليًا
- المهام أخيرًا

المتزامن أولًا
تُنفَّذ التعليمات المتزامنة من الأعلى إلى الأسفل قبل أي دوال ردّ اتصال موضوعة في قائمة الانتظار.
// Sync code runs immediately
console.log("A: sync start");
console.log("B: sync middle");
console.log("C: sync end");

أساسيات قائمة المهام
تضع setTimeout مهمة في قائمة الانتظار. وتُنفَّذ بعد اكتمال الدورة الحالية.
// Tasks (macrotasks) via setTimeout
console.log("1: start");
setTimeout(function () {
console.log("3: timeout task");
}, 0);
console.log("2: after scheduling");

أساسيات المهام الصغيرة
تضيف Promise.then مهمة صغيرة. وتُنفَّذ المهام الصغيرة مباشرة بعد الكود المتزامن وقبل المهام.
// Microtasks via Promise.then
console.log("X: sync");
Promise.resolve().then(function () {
console.log("Y: microtask");
});
console.log("Z: after scheduling microtask");

عرض ترتيب التنفيذ
الترتيب المتوقع: Start ← End ← مهمة صغيرة ← مهمة.
// Order demo: microtask runs before task
console.log("Start");
setTimeout(function () {
console.log("Task: timeout");
}, 0);
Promise.resolve().then(function () {
console.log("Microtask: promise");
});
console.log("End");

عرض توضيحي لـ queueMicrotask
تجدول queueMicrotask أيضًا مهمة صغيرة. اجعلوا دوال ردّ الاتصال قصيرة للحفاظ على سلاسة التطبيقات.
// queueMicrotask is another way to schedule a microtask
console.log("S");
queueMicrotask(function () {
console.log("M: microtask");
});
console.log("E");
// Tip: do not overuse microtasks; keep callbacks tiny

اختبار المهام الصغيرة مقابل المهام
تحقق سريع: قاعدة الترتيب.

مراجعة
مراجعة: تنفّذ الحلقة الكود المتزامن أولًا، ثم تُفرغ قائمة المهام الصغيرة، ثم تنفّذ المهام. استخدموا setTimeout للمهام، وPromise.then/queueMicrotask للمهام الصغيرة.

الأسئلة الشائعة
هل درس «حلقة الأحداث وأساسيات Task مقابل Microtask» مجاني؟
نعم — نص درس «حلقة الأحداث وأساسيات Task مقابل Microtask» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
ماذا ستتعلم في «حلقة الأحداث وأساسيات Task مقابل Microtask»؟
شاهدوا كيف تشغّل حلقة الأحداث الشيفرة المتزامنة أولًا، ثم microtasks، ثم tasks. وتدرّبوا باستخدام setTimeout وPromise.then وqueueMicrotask تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟
لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.
كم من الوقت يستغرق درس «حلقة الأحداث وأساسيات Task مقابل Microtask»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟
نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- حلقة الأحداث وأساسيات Task مقابل Microtask
- Promises — الحالات والسلاسل ومعالجة الأخطاء
- Promise.all / any / race / allSettled — اختيار الأداة المناسبة