Senior
Explain the mechanism of the Event Loop in the browser
sobes.tech AI
Answer from AI
The Event Loop in the browser is a mechanism that allows JavaScript to execute asynchronous code despite the language being single-threaded.
Main components:
- Call Stack — where functions to be executed are placed.
- Web APIs — browser APIs (e.g., setTimeout, DOM events) that operate asynchronously.
- Callback Queue — where functions ready to execute after asynchronous operations are placed.
How it works:
- JavaScript executes code, placing functions on the Call Stack.
- When an asynchronous operation (e.g., setTimeout) occurs, it is handed over to Web APIs, and the main thread continues working.
- Upon completion of the asynchronous operation, the corresponding callback is placed in the Callback Queue.
- The Event Loop constantly checks if the Call Stack is empty. If it is, the Event Loop takes the first callback from the Callback Queue and places it on the Call Stack for execution.
Thus, the Event Loop ensures non-blocking code execution, allowing the browser to handle events, timers, and other asynchronous operations without stopping the main thread.
Example:
console.log('Start');
setTimeout(() => {
console.log('Timeout');
}, 0);
console.log('End');
The output will be:
Start
End
Timeout
Because the setTimeout callback is placed in the queue and executed after the main stack is free.