𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗣𝗿𝗼𝗺𝗶𝘀𝗲𝘀

Sebuah Promise mewakili hasil bagi tugasan asinkronus.

Anda menggunakan Promise untuk panggilan API, pertanyaan pangkalan data, dan pembacaan fail.

Sebuah Promise mempunyai tiga keadaan:

  • Pending: Tugasan masih berjalan.
  • Fulfilled: Tugasan selesai dengan jayanya.
  • Rejected: Tugasan gagal dengan ralat.

Strukturnya kelihatan seperti ini:

const promise = new Promise((resolve, reject) => {
  // The executor runs immediately
});

Anda mengendalikan hasil dengan kaedah-kaedah ini:

  • .then(): Berjalan apabila promise berjaya.
  • .catch(): Berjalan apabila promise gagal.
  • .finally(): Berjalan apabila tugasan tamat tanpa mengira keputusannya.

Peraturan penting untuk diingati:

  • Keputusan pertama yang menang. Jika anda memanggil resolve() dan kemudian reject(), resolve akan menang.
  • Fungsi executor berjalan secara sinkronus.
  • Menggunakan async dan await menjadikan kod anda lebih mudah dibaca berbanding menggunakan .then().

Mengendalikan pelbagai promise:

  • Promise.all(): Ini mengikut pendekatan fail-fast. Jika satu promise gagal, keseluruhan kumpulan tersebut akan gagal.
  • Promise.allSettled(): Ini menunggu setiap promise selesai. Ia mengembalikan hasil walaupun terdapat beberapa tugasan yang gagal.

Ringkasan:

  • Promise: Pengendali hasil asinkronus.
  • resolve: Menandakan kejayaan.
  • reject: Menandakan kegagalan.
  • async/await: Cara yang lebih bersih untuk menulis promise.
  • Promise.all: Berhenti pada ralat pertama.
  • Promise.allSettled: Menyiapkan semua tugasan.

Sumber: https://dev.to/malik786/javascript-promises-2hn4