Belajar JavaScript Dasar #17: Promise


👍 0 ❤️ 0 💡 0 🔥 0 🙌 0 🥳 0
Belajar JavaScript Dasar #17: Promise

Halo teman-teman semuanya, pada artikel kali ini kita akan belajar tentang Promise di JavaScript, fitur penting untuk mengelola operasi asynchronous seperti mengambil data dari server, membaca file, atau tugas-tugas lain yang memakan waktu.

Apa Itu Promise di JavaScript?

Promise adalah sebuah objek di JavaScript yang merepresentasikan sebuah proses yang belum selesai tapi akan selesai di masa depan (future). Promise bisa berada di tiga status:

  • Pending: Sedang berjalan, belum selesai.
  • Fulfilled: Berhasil diselesaikan.
  • Rejected: Gagal diselesaikan.

Dengan Promise, kita bisa menangani hasil operasi asynchronous dengan cara yang lebih rapi dibandingkan dengan callback biasa (yang sering disebut "callback hell").

Cara Membuat Promise

Kita bisa membuat Promise menggunakan constructor Promise:

const janji = new Promise((resolve, reject) => {
  let sukses = true;

  if (sukses) {
    resolve("Berhasil!");
  } else {
    reject("Gagal!");
  }
});
  • resolve() dipanggil kalau operasinya berhasil.
  • reject() dipanggil kalau operasinya gagal.

Cara Menggunakan Promise

Setelah membuat Promise, kita bisa menanganinya dengan then dan catch:

janji
  .then((hasil) => {
    console.log(hasil); // Output: Berhasil!
  })
  .catch((error) => {
    console.log(error);
  });
  • then() dipanggil saat Promise berhasil.
  • catch() dipanggil saat Promise gagal.

Contoh Kasus Sederhana

Misalnya kita membuat fungsi untuk cek login user:

function cekLogin(user) {
  return new Promise((resolve, reject) => {
    if (user === "admin") {
      resolve("Login berhasil!");
    } else {
      reject("Login gagal!");
    }
  });
}

cekLogin("admin")
  .then((res) => console.log(res))    // Output: Login berhasil!
  .catch((err) => console.log(err));

Kalau input user adalah "admin", Promise akan resolve, kalau tidak akan reject.

Promise dengan setTimeout

Kita juga bisa membuat simulasi asynchronous menggunakan setTimeout:

function delay(ms) {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve("Selesai!");
    }, ms);
  });
}

delay(2000).then((hasil) => {
  console.log(hasil); // Output setelah 2 detik: Selesai!
});

Promise ini baru selesai setelah 2 detik.

Kesimpulan

Promise di JavaScript adalah cara modern untuk menangani operasi asynchronous dengan lebih rapi dan mudah dikelola. Dengan Promise, kita bisa menghindari "callback hell" dan membuat alur program lebih jelas.

Pada artikel berikutnya, kita semua akan belajar tentang Async Await di dalam JavaScript.

Terima Kasih


Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami