kembali ke pelajaran

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.