𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗣𝗿𝗼𝗺𝗶𝘀𝗲𝘀
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.
