jsverse
Async & Browser JS / Web APIs

Web APIs

Timers, fetch, and DOM events aren't part of JavaScript itself - the browser provides them.

`setTimeout`, `fetch`, and DOM event listeners aren't defined by the JavaScript language - they're provided by the browser (or Node.js) as Web APIs, running outside the single JS thread. JavaScript just calls them and hands over a callback; the environment does the actual waiting, and only pushes the callback back into a queue once it's ready to run.

Codeeditable — Run and Step both follow your edits
Loading...
Console
Output will appear here
Visualization
Result
Press Step to watch each line's result appear here
Why?

setTimeout returns immediately after registering the timer with the browser - the actual waiting happens outside JavaScript entirely, which is why the two synchronous logs both finish first.