The call stack

JavaScript is a single-threaded language. That means it can have one call stack at a given time (take one thread = one call stack). Furthermore, it implies that JavaScript cannot do more than two things at a time. Or can it?

When you call a function, you step inside that function. This function is added to the call stack. When the function returns a value, the function is popped from the call stack.

Let's take a look at this example:

const page1 = $.syncHTTP('http://example.com/page1');const page2 = $.syncHTTP('http://example.com/page2');const page3 = $.syncHTTP('http://example.com/page3');const page4 = $.syncHTTP('http://example.com/page4');console.log(page1, page2, page3, page4);

For the sake of simplicity, consider $.syncHTTP ...

Get Learn ECMAScript - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.