Lanjutan & AsyncKamis, 29 Januari 2026

Promises & Async JS

Menangani tugas yang memakan waktu.

Iklan

Dukung JS Fruggal dengan melihat sponsor kami.

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.

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.

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}`);
  });
Iklan

Dukung JS Fruggal dengan melihat sponsor kami.