setTimeout(()=>{}, 10000);
console.log("I")
זה יודפס לפני ההשהיה למרות שזה לא I/O.
הסיבה היא שהקומפיילר יוצא לחופשה בזמן ההשהיה, כל פעולה שהוא לא אמור להמשיך לעשות חישובים ולקמפל, הוא ממשיך לשורה הבאה.
בדוגמא שלך הוא ממשיך לעבוד על הלולאה לכן הוא לא ממשיך לפקודת ההדפסה.