𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗣𝗿𝗼𝗺𝗶𝘀𝗲𝘀
Sebuah Promise merepresentasikan hasil dari tugas asinkron.
Anda menggunakan Promise untuk panggilan API, kueri database, dan pembacaan file.
Sebuah Promise memiliki tiga status:
- Pending: Tugas masih berjalan.
- Fulfilled: Tugas selesai dengan sukses.
- Rejected: Tugas gagal dengan sebuah error.
Strukturnya terlihat seperti ini:
const promise = new Promise((resolve, reject) => { // Executor berjalan segera });
Anda menangani hasilnya dengan metode-metode berikut:
- .then(): Berjalan saat promise berhasil.
- .catch(): Berjalan saat promise gagal.
- .finally(): Berjalan saat tugas berakhir terlepas dari hasilnya.
Aturan penting untuk diingat:
- Hasil pertama yang menang. Jika Anda memanggil resolve() lalu reject(), resolve yang menang.
- Fungsi executor berjalan secara sinkron.
- Menggunakan async dan await membuat kode Anda lebih mudah dibaca daripada menggunakan .then().
Menangani beberapa promise:
- Promise.all(): Ini mengikuti pendekatan fail-fast. Jika satu promise gagal, seluruh grup akan gagal.
- Promise.allSettled(): Ini menunggu setiap promise selesai. Ini mengembalikan hasil meskipun beberapa tugas gagal.
Ringkasan:
- Promise: Penangan hasil asinkron.
- resolve: Menandai keberhasilan.
- reject: Menandai kegagalan.
- async/await: Cara yang lebih bersih untuk menulis promise.
- Promise.all: Berhenti pada error pertama.
- Promise.allSettled: Menyelesaikan semua tugas.
