DEV Community

Nhan Nguyen
Nhan Nguyen

Posted on

JavaScript š— š—¶š—°š—暝—¼š˜š—®š˜€š—ø š—¤š˜‚š—²š˜‚š—² and š— š—®š—°š—暝—¼š˜š—®š˜€š—ø š—¤š˜‚š—²š˜‚š—²

JavaScript has two secret queues to handle tasks: š— š—¶š—°š—暝—¼š˜š—®š˜€š—ø š—¤š˜‚š—²š˜‚š—² and š— š—®š—°š—暝—¼š˜š—®š˜€š—ø š—¤š˜‚š—²š˜‚š—².

Image description

āœØš— š—¶š—°š—暝—¼š˜š—®š˜€š—ø š—¤š˜‚š—²š˜‚š—²: It's like a super-fast line where tiny tasks wait their turn. These tasks are usually promises or mutation observers. When a promise resolves or a mutation happens, they jump into the Microtask queue.

āœØ š— š—®š—°š—暝—¼š˜š—®š˜€š—ø š—¤š˜‚š—²š˜‚š—²: It's like a regular line for more significant tasks. Think setTimeout, callbacks, or fetching data from a server. When these tasks need handling, they join the Macrotask Queue.

JavaScript always finishes what it's doing before checking these queues. But it prioritizes š— š—¶š—°š—暝—¼š˜š—®š˜€š—ø over š— š—®š—°š—暝—¼š˜š—®š˜€š—ø.


I hope you found it helpful. Thanks for reading. šŸ™

Let's get connected! You can find me on:

Top comments (1)