JavaScript · Junior · Pytanie 32 z 75
W jakiej kolejności zostaną wypisane liczby?
console.log(1);
setTimeout(() => console.log(2), 0);
Promise.resolve().then(() => console.log(3));
console.log(4);- ✓Poprawna odpowiedź:
1 4 3 2 - 2
1 2 3 4 - 3
1 4 2 3
Wyjaśnienie
Najpierw wykonuje się kod synchroniczny (1, 4). Potem event loop wykonuje wszystkie mikrozadania - callbacki promise'ów (3) - a dopiero potem kolejne makrozadanie - timer (2). setTimeout(fn, 0) nie oznacza „natychmiast”.