Lanjutan & AsyncSelasa, 20 Januari 2026

Event Loop

Bagaimana JS menangani konkurensi.

Iklan

Dukung JS Fruggal dengan melihat sponsor kami.

JavaScript adalah single-threaded (satu jalur). Ia memiliki satu Call Stack. Event Loop adalah pengontrol lalu lintas yang memutuskan apa yang masuk ke stack tersebut.

Jalur Prioritas (Microtasks)

Tidak semua tugas itu sama.
MacroTasks (setTimeout, setInterval): Jalur reguler.
MicroTasks (Promises, QueueMicrotask): Jalur VIP.

Event Loop selalu mengosongkan jalur VIP (Promises) sebelum memproses mobil reguler berikutnya (setTimeout).

Kuis Pamungkas

Prediksi urutannya sebelum menjalankan ini. Ini adalah pertanyaan wawancara yang sangat umum.

console.log("1. Mulai");

setTimeout(() => {
  console.log("2. Timeout (Macro)");
}, 0);

Promise.resolve().then(() => {
  console.log("3. Promise (Micro)");
});

console.log("4. Selesai");

/*
Logika Urutan:
1. "Mulai" (Sinkron)
2. "Selesai" (Sinkron)
3. "Promise" (Antrean Microtask - Prioritas Lebih Tinggi)
4. "Timeout" (Antrean Macrotask - Prioritas Lebih Rendah)
*/
Iklan

Dukung JS Fruggal dengan melihat sponsor kami.