Nâng CaoJavaScript iconJavaScript

Event loop trong JavaScript hoạt động như thế nào?

JS single-threaded nhưng xử lý async nhờ event loop.

Quy trình:

  1. Chạy hết sync code trên Call Stack.
  2. Xử lý hết Microtask queue.
  3. Browser có thể render.
  4. Lấy 1 Macrotask.
  5. Quay lại bước 2
javascript
console.log('1 sync');

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

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

console.log('1b sync');
// Output: 1 sync → 1b sync → 2 microtask → 3 microtask 2 → 4 macrotask

Microtasks luôn ưu tiên hơn macrotasks — Promise.resolve().then() chạy trước setTimeout(fn, 0).

Xem toàn bộ JavaScript cùng filter theo level & chủ đề con.

Mở danh sách JavaScript