Yep-Promise.then(.) and queueMicrotask(.) are the usual microtask examples, and they run after the current code finishes but before setTimeout(.).js console.log("A"); setTimeout(() => console.log("timer"), 0); Promise.resolve().then(() => console.log("promise microtask")); queueMicrotask(() => console.log("queued microtask")); console.log("B"); // Output: A, B, promise microtask, queued microtask, timer That is why microtasks feel a little “in between” normal code and timers.
Yep, here it is with proper line breaks:js console.log("A"); setTimeout(() => { console.log("timer"); }, 0); Promise.resolve().then(() => { console.log("promise microtask"); }); queueMicrotask(() => { console.log("queued microtask"); }); console.log("B"); // Output: // A // B // promise microtask // queued microtask // timer Small note: the microtasks run before setTimeout, and in this example Promise.then(.) goes first because it was queued first.