-1

So sánh Microtask và Macrotask trong JavaScript qua ví dụ thực tế dễ hiểu

So sánh Microtask và Macrotask trong JavaScript qua ví dụ thực tế dễ hiểu

Xin chào mọi người, mình là [Tên bạn] đây!

Gần đây khi ôn phỏng vấn, mình thấy có rất nhiều câu hỏi xoay quanh Event Loop, Microtask, Macrotask trong JavaScript. Bài viết này sẽ giúp bạn phân biệt rõ ràng 2 loại task này qua ví dụ minh họa dễ hiểu.


1. Event Loop là gì?

Event Loop là cơ chế giúp JavaScript xử lý bất đồng bộ (async). Dù chỉ chạy trên 1 luồng (single-threaded), nhưng nhờ Event Loop, JavaScript vẫn có thể “làm nhiều việc một lúc”.


2. Microtask vs Macrotask

Tiêu chí Microtask Macrotask
Ví dụ Promise.then, queueMicrotask() setTimeout, setInterval
Ưu tiên Cao hơn Thấp hơn
Thực thi khi nào Sau khi call stack rỗng Sau khi toàn bộ microtask xong

3. Ví dụ minh họa

console.log('Start');

setTimeout(() => {
  console.log('Macrotask - setTimeout');
}, 0);

Promise.resolve().then(() => {
  console.log('Microtask - Promise');
});

console.log('End');

All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí