Lewati ke konten utama

Promise & Async/Await

Dulu kita menangani proses async menggunakan Callback, tapi itu membuat kode jadi berantakan (Callback Hell). Sekarang kita pakai Promise.

1. Konsep Promise (Janji)​

Sebuah fungsi yang berjanji akan memberikan data di masa depan. Statusnya ada 3:

  • Pending: Sedang diproses.
  • Fulfilled (Resolved): Berhasil.
  • Rejected: Gagal (Error).

2. Async / Await (Cara Modern)​

Sejak ES2017, kita bisa menulis kode Asynchronous tapi terlihat rapi seperti Synchronous.

  • async: Memberi tahu bahwa fungsi ini ada proses async-nya.
  • await: "Tunggu sebentar sampai proses ini selesai, baru lanjut ke bawah."
// Simulasi request data ke server
const ambilData = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve("Data User: Faqih");
}, 2000);
});
};

// Cara Pakai (Modern)
const jalankan = async () => {
console.log("Loading...");

// Tunggu 2 detik di sini, tanpa memblokir browser
const hasil = await ambilData();

console.log(hasil); // "Data User: Faqih"
console.log("Selesai");
};

jalankan();
Wajib Tahu

Di React dan Next.js, Anda akan menggunakan async/await hampir setiap hari untuk mengambil data dari Database atau API.