هذه طرق أفضل تدريجيًا للتعبير عن العمل غير المُعيق على خيط واحد، وكلها مدفوعة في الأسفل بـ event loop يشغّل الـ callbacks الجاهزة واحدًا تلو الآخر. فهي تدير متى تُستأنف الشيفرة، لا خيوطًا متعدّدة.
الـ event loop
حلقة أحادية الخيط تحافظ على طابور من الـ callbacks الجاهزة. عندما تكتمل عملية غير متزامنة (مؤقّت، أو إدخال/إخراج)، يُدرَج الـ callback الخاص بها في الطابور؛ وتلتقط الحلقة التالي وتشغّله حتى الاكتمال، ثم تكرّر. لا شيء يستبق callback قيد التشغيل، لذا يُعيق العمل الطويل على المعالج كل شيء.
[event loop] → run callback → I/O finishes → enqueue callback → run next → ...
