Promise — Status, Perantaian, Penanganan Galat
Buat dan gunakan Promise: status pending/fulfilled/rejected, perantaian dengan then, serta penanganan galat dengan catch/finally
Promise — Status, Perantaian, Penanganan Galat adalah pelajaran JavaScript Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar JavaScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus JavaScript Academy mencakup 3 pelajaran total.
Pengantar Promise
Tujuan: Pelajari pola-pola kecil Promise.
- Status: menunggu → terpenuhi/ditolak
- Perangkaian then
- Penanganan kesalahan dengan catch
- Pembersihan dengan finally

Menyelesaikan Promise
Sebuah Promise dimulai dalam keadaan menunggu dan menjadi terpenuhi saat Anda memanggil resolve.
// Create a Promise and resolve it
function waitMs(ms) {
return new Promise(function (resolve) {
setTimeout(function () {
resolve("done");
}, ms);
});
}
console.log("Start");
waitMs(10).then(function (msg) {
console.log("Resolved:", msg);
});

Menolak dan menangkap
Gunakan reject(Error) untuk kegagalan. Sebuah catch menangani penolakan apa pun yang terjadi sebelumnya.
// Reject to signal an error; handle with catch
function maybeFail(ok) {
return new Promise(function (resolve, reject) {
if (ok) {
resolve("ok");
} else {
reject(new Error("bad"));
}
});
}
maybeFail(true)
.then(function (v) {
console.log("A:", v);
return maybeFail(false);
})
.catch(function (e) {
console.log("Caught:", e.message);
});

Dasar-dasar perangkaian then
Setiap then dapat mengembalikan nilai atau Promise. Langkah berikutnya menerimanya.
// Chain then steps; return values flow to the next then
Promise.resolve(2)
.then(function (n) {
return n * 3;
})
.then(function (n) {
console.log("Result:", n);
});

Pembersihan dengan finally
finally digunakan untuk pembersihan setelah berhasil atau terjadi kesalahan; finally tidak menerima nilai maupun kesalahan.
// finally runs whether fulfilled or rejected
function task(ok) {
return new Promise(function (resolve, reject) {
ok ? resolve("yay") : reject(new Error("oops"));
});
}
task(false)
.catch(function (e) {
console.log("Handled:", e.message);
})
.finally(function () {
console.log("Cleanup done");
});

Mengenal Promise.all
Promise.all terpenuhi dengan larik hasil atau ditolak jika salah satu proses gagal.
// Promise.all waits for all; rejects fast if any fail
const a = waitMs(5);
const b = Promise.resolve("B");
Promise.all([a, b])
.then(function (values) {
console.log("All:", values);
})
.catch(function (e) {
console.log("All failed:", e.message);
});

Kuis penanganan kesalahan Promise
Pemeriksaan cepat: Di mana kesalahan harus ditangani?

Ringkasan
Ringkasan: Gunakan resolve untuk keberhasilan, reject untuk kesalahan, rangkai langkah dengan then, tangani masalah dengan catch, dan gunakan finally untuk pembersihan.

Pertanyaan yang Sering Diajukan
Apakah pelajaran “Promise — Status, Perantaian, Penanganan Galat” gratis?
Ya — teks lengkap “Promise — Status, Perantaian, Penanganan Galat” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus JavaScript Academy, upgrade ke CoddyKit PRO. Kursus JavaScript Academy mencakup 3 pelajaran total.
Apa yang akan aku pelajari di “Promise — Status, Perantaian, Penanganan Galat”?
Buat dan gunakan Promise: status pending/fulfilled/rejected, perantaian dengan then, serta penanganan galat dengan catch/finally Kamu berlatih JavaScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai JavaScript Academy?
Tidak diperlukan pengalaman sebelumnya. JavaScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 3.
Berapa lama pelajaran “Promise — Status, Perantaian, Penanganan Galat” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran JavaScript Academy ini?
Ya. Setiap pelajaran JavaScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Dasar Event Loop serta Task vs Microtask
- Promise — Status, Perantaian, Penanganan Galat
- Promise.all / any / race / allSettled — pilih alat yang tepat