Latihan Asynchronous JavaScript

Soal made by : Unit L_00-N47

Soal 1: setTimeout

Buat kode yang menampilkan "Halo setelah 3 detik" menggunakan setTimeout.

Clue: gunakan setTimeout(() => {...}, 3000).

Soal 2: setInterval

Tampilkan tulisan "Detik ke-1", "Detik ke-2" dan berhenti setelah 5 detik.

Clue: simpan hasil setInterval ke variabel, lalu hentikan dengan clearInterval.

Soal 3: Promise

Buat Promise yang mengecek apakah sebuah angka genap atau ganjil.

Clue: gunakan resolve("Genap") atau reject("Ganjil").

Soal 4: async/await

Tulis function async yang menunggu 2 detik lalu mengembalikan "Selesai".

Clue: buat helper delay() dengan Promise, lalu gunakan await.

Soal 5: Promise.all

Buat dua Promise (1 detik dan 2 detik), lalu tunggu keduanya selesai, kemudian tampilkan hasil gabungan.

Clue: gunakan Promise.all([ ... ]) lalu .then().

Soal 6: Promise.race

Buat dua Promise dengan waktu berbeda, lalu tampilkan yang paling cepat selesai.

Clue: gunakan Promise.race([ ... ]).

Soal 7: Error Handling

Buat fungsi async yang memanggil Promise gagal, lalu tangkap error dengan try/catch.

Clue: gunakan reject("error") di Promise, lalu try { ... } catch(e) { ... }.

Soal 8: Event Loop

Buat kode yang menampilkan urutan "start", "end", "promise", "timeout".

Clue: gunakan kombinasi console.log, Promise.resolve().then(), dan setTimeout(..., 0).