1
JavaScriptIntermediate#async#promises
Microtasks are promise reactions, queueMicrotask and MutationObserver callbacks; the queue is fully drained after each task. Macrotasks include setTimeout, setInterval, I/O and UI events, and only one runs per loop turn.
setTimeout(() => console.log('macro'));
Promise.resolve().then(() => console.log('micro'));
// micro then macro