DEV Community

Mehul Lakhanpal
Mehul Lakhanpal

Posted on • Originally published at

What's the order of execution?

setTimeout(() => console.log('1'), 0);

Promise.resolve().then(() => console.log('2'));

Enter fullscreen mode Exit fullscreen mode

Thanks for reading 💙

Follow for daily posts.


Micro-Learning ● Web Development ● Javascript ● MERN stack ● Javascript

Discussion (2)

alexkhismatulin profile image
Alex Khismatulin

That's going to be 3, 2, 1. Why:
Start execution. Put setTimeout's callback into the task queue. Since a promise is already resolved, put then's callback into the microtask queue. Execute console.log('3');. Then we execute the microtask(then's callback) and its console.log(2); because microtasks are executed before regular tasks whenever the call stack empties. Then the task(setTimeout's callback) executed and console.log(1); in it.

318097 profile image
Mehul Lakhanpal Author

Awesome 🔥😄