
How is JavaScript single-threaded and asynchronous?
JavaScript in the browser is single-threaded, but the asynchronous behavior is not part of the JavaScript language itself. Asynchronicity is provided on top of the JavaScript engine through the browser APIs. When you want to achieve asynchrony, — by making a fetch request for example — the task is handed over to the browser, which handles it in the background. When the task is finished, it is placed into the tasked queue, which eventually returns it to the call stack.
You can see a great visualization of this functionality on Loupe.



Tired of looking for tutorials?
You are not alone. Webtips has more than 400 tutorials which would take roughly 75 hours to read.
Check out our interactive course to master JavaScript in less time.
Learn More