Async/Await adalah gula sintaksis (syntactic sugar) di atas Promises. Ini membuat kode asinkron terlihat sinkron, yang lebih mudah diikuti oleh otak manusia.
Polanya
Perhatikan kita membungkus semuanya dalam try/catch. Ini wajib dalam kode profesional. Tanpanya, jika permintaan gagal, aplikasi Anda bisa crash diam-diam.
javascript
// Panggilan API Tiruan
const ambilPengguna = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
// Simulasikan tingkat kegagalan 50%
Math.random() > 0.5
? resolve({ id: 1, nama: "Alice" })
: reject(new Error("Kesalahan Jaringan"));
}, 1000);
});
};
async function muatProfil() {
console.log("Memuat...");
try {
// Kode berhenti di sini sampai janji diselesaikan
const pengguna = await ambilPengguna();
console.log("Pengguna dimuat:", pengguna.nama);
} catch (error) {
// Jika janji ditolak, kita lompat ke sini
console.error("Gagal:", error.message);
} finally {
console.log("Sembunyikan spinner pemuatan.");
}
}
muatProfil();Kesalahan Umum: Air Terjun Berurutan
Jangan await hal-hal satu per satu jika mereka tidak bergantung satu sama lain.
Buruk: await getUser(); await getPosts(); (Menunggu dua kali).
Bagus: await Promise.all([getUser(), getPosts()]); (Berjalan bersamaan).