Promise (Janji) adalah "Surat Hutang" (IOU) untuk nilai masa depan. Ini mencegah "Neraka Callback" (Callback Hell) yang ditakuti dengan meratakan kode bersarang.
Menggunakan Promise
Mensimulasikan permintaan jaringan lempar koin.
javascript
const lemparKoin = new Promise((resolve, reject) => {
setTimeout(() => {
if (Math.random() > 0.5) resolve("Kepala! Anda menang.");
else reject("Ekor! Anda kalah.");
}, 1000);
});
console.log("Melempar koin...");
lemparKoin
.then(hasil => console.log("Sukses:", hasil))
.catch(err => console.error("Gagal:", err))
.finally(() => console.log("Permainan Selesai."));Tingkat Lanjut: Eksekusi Paralel
Analogi Koki
Jika Anda butuh Roti Panggang DAN Kopi:
Berurutan: Buat roti (tunggu 2m). Lalu buat kopi (tunggu 2m). Total: 4m.
Paralel (Promise.all): Mulai roti DAN mulai kopi. Tunggu keduanya. Total: 2m.
javascript
const ambilRoti = new Promise(r => setTimeout(() => r("Roti Panggang"), 1000));
const ambilKopi = new Promise(r => setTimeout(() => r("Kopi"), 1000));
console.log("Memulai sarapan...");
Promise.all([ambilRoti, ambilKopi])
.then(([makanan, minuman]) => {
console.log(`Sarapan disajikan: ${makanan} dan ${minuman}`);
});