Microtasks: Promise callbacks (.then, .catch), queueMicrotask(), MutationObserver. Macrotasks (tasks): setTimeout, setInterval, setImmediate (Node.js), I/O callbacks.
Lưu ý UI rendering không phải macrotask — nó xảy ra giữa các tasks như một bước riêng của browser. Sau mỗi macrotask, tất cả microtasks trong queue được xử lý hết, sau đó browser có thể render. Thứ tự: sync code → microtasks → render → macrotask → ...
Microtasks: Promise callbacks (.then, .catch), queueMicrotask(), MutationObserver. Macrotasks (tasks): setTimeout, setInterval, setImmediate (Node.js), I/O callbacks.
Note that UI rendering is not a macrotask — it occurs between tasks as a separate browser step. After each macrotask, all microtasks in the queue are processed, then the browser may render. Order: sync code → microtasks → render → macrotask → ...