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

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.

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