JavaScriptPytanie 11 z 36
What do you understand about event loop?
Co to event loop?
Najpierw odpowiedz na głos lub w myślach, potem porównaj.
Odpowiedź
Event loop koordynuje kod synchroniczny i asynchroniczny.
Najważniejsze elementy:
Call Stack
Microtask Queue
Task / Macrotask QueuePrzykład:
JavaScript
console.log("A");
setTimeout(() => {
console.log("B");
}, 0);
Promise.resolve().then(() => {
console.log("C");
});
console.log("D");Wynik:
A
D
C
BDlaczego?
Najpierw wykonuje się cały synchroniczny kod:
A
DCallback Promise trafia do microtask queue.
Callback setTimeout do task/macrotask queue.
Po opróżnieniu call stacka event loop wykonuje najpierw microtaski.
Dlatego:
Promiseprzed:
setTimeoutDoprecyzowanie:
Promise też nie wykonuje .then() od razu. Jego callback również czeka, tylko w kolejce o wyższym priorytecie.
Jak poszło? Bądź szczery — „Jeszcze nie” dodaje pytanie do powtórki.
Powiązane pytania
- B-P03 · Co to jest event loop, czyli pętla zdarzeń? — JavaScript, TypeScript i Node.js
- Event loop w Node.js — Node.js