Kami ingin membuat proyek open source ini tersedia untuk orang-orang di seluruh dunia.

Bantu untuk menerjemahkan konten tutorial ini ke bahasa Anda!

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.