Tunda dengan promise
Fungsi bawaan setTimeout
menggunakan callbacks. Buat alternatif berbasis promise.
Fungsi delay(ms)
harus mengembalikkan sebuah promise. Promise itu harus diselesaikan setelah ms
milidetik, sehingga kita bisa menambahkan .then
ke fungsi tersebut, seperti ini:
function delay(ms) {
// kode kamu
}
delay(3000).then(() => alert('runs after 3 seconds'));
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
delay(3000).then(() => alert('berjalan setelah 3 detik'));
Harap dicatat bahwa penyelesaian tugas ini, resolve
dipanggil tanpa argumen. Kita tidak mengembalikkan nilai apapun dari delay
, hanya memastikan penundaan tersebut.