Latihan 1: Async & Microtask Debugging — Debugging
Latihan 1 dari materi Async & Microtask Debugging di Debugging — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
tasks: array dari { type: "sync" | "micro" | "macro", label } yang dijadwalkan secara berurutan saat eksekusi sync.
Aturan event loop:
Jalankan semua sync dulu (urutan muncul)
Drain microtask queue (urutan muncul)
Drain macrotask queue satu per satu, dan tiap macrotask drain microtask lagi
Return array label dalam urutan eksekusi final.
2. findForgottenAwait(source)
source: string kode JavaScript
Return array nomor baris (1-indexed) yang kemungkinan forgotten await, deteksi sederhana: baris yang memanggil function yang namanya diawali async atau memanggil fetch(, .then( tanpa didahului await atau return pada baris yang sama.
3. detectUnhandledRejection(promises)
promises: array { id, chained: boolean }, apakah promise di-.catch() atau di-await dalam try/catch.
Return array id yang tidak chained (unhandled).
Hint
Urutan event loop bertingkat: semua yang sinkron dulu, lalu antrean mikro sampai habis, lalu satu tugas makro dan antrean mikro dikuras lagi.
Pemeriksaan baris demi baris cukup melihat apa yang mendahului pemanggilan asinkron di baris yang sama.
Promise yang sudah dirantai berarti sudah ditangani, jadi yang dilaporkan hanya sisanya.
HyperSheets
bagian dari BelajarWeb.dev
🔄
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...