تعد حلقة الحدث مفهومًا أساسيًا في Node.js الذي يمكّنها من التعامل مع العمليات غير المتزامنة بكفاءة. وإليك شرح مبسط لكيفية العمل:
يعمل Node.js على مؤشر ترابط واحد. هذا يعني أنه يمكنه تنفيذ جزء واحد فقط من التعليمات البرمجية في كل مرة. ومع ذلك، تم تصميم Node.js للتعامل مع العديد من العمليات بشكل متزامن دون الحاجة إلى عدة سلاسل عمليات.
يستخدم Node.js عمليات الإدخال/الإخراج غير المحظورة. عندما يقوم Node.js بمهام مثل قراءة الملفات، أو الاستعلام عن قاعدة بيانات، أو تقديم طلبات الشبكة، فإنه لا ينتظر اكتمال هذه المهام قبل الانتقال إلى المهمة التالية. وبدلاً من ذلك، يستمر في تنفيذ تعليمات برمجية أخرى أثناء معالجة هذه المهام.
حلقة الحدث مسؤولة عن إدارة تنفيذ التعليمات البرمجية والتعامل مع الأحداث غير المتزامنة. فهو يتحقق بشكل مستمر من "قائمة الانتظار" للمهام ويقرر المهام التي سيتم تنفيذها. فيما يلي تفصيل خطوة بخطوة:
المهام غير المتزامنة، بمجرد اكتمالها، تدفع عمليات الاسترجاعات الخاصة بها إلى قائمة الانتظار. تختار حلقة الحدث عمليات الاسترجاعات هذه من قائمة الانتظار وتنفذها بالترتيب.
بصرف النظر عن قائمة الانتظار الرئيسية، هناك أيضًا قائمة انتظار للمهام الصغيرة (أو قائمة انتظار التجزئة التالية) حيث يتم وضع عمليات الاسترجاعات المجدولة باستخدام Process.nextTick() أو معالجات الوعود .then() في قائمة الانتظار. تتمتع المهام الصغيرة بالأولوية على عمليات الاسترجاعات العادية، مما يعني أنها يتم تنفيذها بعد اكتمال العملية الحالية ولكن قبل أن تنتقل حلقة الحدث إلى المرحلة التالية.
إليك مثال بسيط لتوضيح كيفية عمل حلقة الحدث:
const fs = require('fs'); console.log('Start'); fs.readFile('file.txt', (err, data) => { if (err) throw err; console.log('File read complete'); }); console.log('End');
الإخراج:
Start End File read complete
توضيح:
تسمح حلقة الأحداث لـ Node.js بالتعامل بكفاءة مع العديد من العمليات في وقت واحد، على الرغم من كونها ذات ترابط واحد، من خلال تفويض العمليات إلى النظام ومعالجة نتائجها بشكل غير متزامن.
تقوم حلقة الأحداث بتنسيق تنفيذ المهام، مع إعطاء الأولوية لـ قائمة انتظار المهام الدقيقة لضمان حل الوعود والعمليات ذات الصلة بسرعة قبل الانتقال إلى المهام في قائمة انتظار المهام الرئيسية (مهمة ماكرو).
تمكن هذه الديناميكية جافا سكريبت من التعامل مع السلوك غير المتزامن المعقد في بيئة ذات ترابط واحد.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3