الفرق في الانتظار:
- متزامنة: المهام تُنفَّذ واحدة تلو الأخرى، وكل مهمة تنتظر انتهاء السابقة.
- غير متزامنة: يمكن بدء مهام دون انتظار انتهاء ما قبلها، فتتقدم عدة مهام في الوقت نفسه.
مثال من الحياة
متزامن: تضع الماء ليغلي، وتقف تنتظره، ثم تقطع الخضار. غير متزامن: تضع الماء، وتقطع الخضار أثناء غليانه.
في الكود
// async: both requests start right away
const a = fetch('/api/a');
const b = fetch('/api/b');
await Promise.all([a, b]);
تصحيح بعض المفاهيم
المتزامنة ليست أسرع دائمًا ولا أبطأ دائمًا، ولا علاقة لأي منهما بالتعامل مع الأخطاء؛ كلاهما يدعمه.