Promises


Promises adalah cara yang berguna untuk mengelola asynchronous code di JavaScript. Mereka membantu menghindari callback hell dan membuat kode lebih terstruktur. Mari kita pelajari langkah-langkah dasar dalam menggunakan Promises.

1. Membuat Promise

Anda dapat membuat Promise menggunakan constructor Promise. Biasanya, Anda akan memiliki sebuah fungsi yang berisi kode asynchronous dan mengembalikan Promise. Contoh:

const myPromise = new Promise((resolve, reject) => {
  // Kode asynchronous di sini
  if (berhasil) {
    resolve("Sukses!"); // Jika berhasil
  } else {
    reject("Gagal!"); // Jika gagal
  }
});

2. Menggunakan then dan catch

Setelah membuat Promise, Anda dapat menggunakannya dengan metode then dan catch untuk menangani hasilnya. then digunakan ketika Promise berhasil, dan catch digunakan untuk menangani kesalahan. Contoh:

myPromise
  .then((result) => {
    console.log(result); // Output: "Sukses!"
  })
  .catch((error) => {
    console.error(error); // Output: "Gagal!"
  });

3. Chaining Promises

Anda dapat menggabungkan beberapa Promise dengan cara yang disebut chaining. Ini berguna ketika Anda memiliki beberapa tugas asynchronous yang harus dijalankan secara berurutan. Contoh:

firstAsyncFunction()
  .then((result) => {
    return secondAsyncFunction(result);
  })
  .then((result) => {
    return thirdAsyncFunction(result);
  })
  .then((finalResult) => {
    console.log(finalResult);
  })
  .catch((error) => {
    console.error(error);
  });

4. Menggunakan Promise.all

Promise.all memungkinkan Anda untuk menjalankan beberapa Promise secara paralel dan menunggu sampai semuanya selesai. Contoh:

const promises = [promise1, promise2, promise3];

Promise.all(promises)
  .then((results) => {
    console.log(results); // Array hasil dari semua Promise
  })
  .catch((error) => {
    console.error(error); // Menangani kesalahan jika ada
  });

Itu adalah pengantar singkat tentang Promises di JavaScript. Dengan memahami konsep ini, Anda dapat mengelola asynchronous code dengan lebih efisien dalam aplikasi Anda.