Promise & Async/Await di JavaScript
Penjelasan
Promise adalah object yang mewakili hasil operasi asinkron (operasi yang butuh waktu, mis. mengambil data dari server) yang belum tentu selesai saat ini juga. Promise punya tiga status: pending (masih berjalan), fulfilled (berhasil), atau rejected (gagal). async/await adalah sintaks lebih ringkas untuk bekerja dengan Promise — membuat kode asinkron terlihat seperti kode biasa yang berjalan berurutan.
Contoh Konsep
function ambilData() {
return new Promise((resolve) => {
setTimeout(() => resolve("Data berhasil diambil"), 1000);
});
}
// Cara 1: .then()
ambilData().then((hasil) => console.log(hasil));
// Cara 2: async/await (lebih ringkas & mudah dibaca)
async function tampilkanData() {
const hasil = await ambilData();
console.log(hasil);
}
tampilkanData();
Praktikum
Buat function ambilAngka() yang mengembalikan Promise berisi angka 42 lewat resolve, dijalankan setelah setTimeout 500ms. Buat async function tampilkanAngka() yang memakai await untuk mengambil hasilnya, lalu console.log hasilnya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
await hanya bisa dipakai di dalam function yang ditandai async — dan sebaiknya selalu dibungkus try/catch untuk menangkap error kalau Promise-nya reject (gagal), sama seperti error handling biasa.