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