← JavaScript40 / 69
setTimeout dan urutan eksekusi
JavaScript tidak menunggu. setTimeout menjadwalkan fungsi untuk dijalankan nanti, lalu kode berikutnya langsung berjalan. Karena itu output kode ini bukan urut dari atas ke bawah — ini konsep pertama yang harus benar sebelum belajar Promise. Bahkan setTimeout(fn, 0) tetap dijalankan setelah seluruh kode sinkron selesai, karena tugas terjadwal baru diambil ketika antrean utama kosong.
👀 Contoh dulu
console.log('Mulai');
setTimeout(() => {
console.log('Ditunda 1 detik');
}, 1000);
setTimeout(() => {
console.log('Ditunda 0 detik');
}, 0);
console.log('Selesai');Hasilnya: Mulai Selesai Ditunda 0 detik Ditunda 1 detik
💡 Semua kode biasa (sinkron) selesai LEBIH DULU, baru callback setTimeout dijalankan — bahkan yang delay-nya 0.
📝 Sekarang giliranmu
Tampilkan 'Pertama', lalu setTimeout yang menampilkan 'Kedua' setelah 0 ms, lalu 'Ketiga'. Perhatikan urutan output yang muncul.
Preview