Setelah mempelajari callback dan Promise, kamu mungkin merasa kode asynchronous sudah jauh lebih rapi. Tapi JavaScript masih punya senjata terakhir yang membuatnya semakin mudah dibaca dan ditulis: async dan await.
Dengan async
dan await
, kamu bisa menulis kode asynchronous seperti kode synchronous, tanpa .then()
berlapis dan callback yang bersarang.
async
dan await
?async
adalah keyword untuk mendefinisikan fungsi asynchronous.await
digunakan untuk menunggu Promise diselesaikan sebelum melanjutkan eksekusi ke baris berikutnya.Dengan kombinasi ini, kamu bisa membuat logika asynchronous yang tampak seperti urutan biasa.
📝 Output:
📘 Penjelasan:
getData
mengembalikan Promise.showData
adalah async function.await
membuat JavaScript menunggu hingga Promise selesai sebelum lanjut.Saat kamu menggunakan await
, kamu bisa menangani error dengan cara yang sama seperti kode synchronous — menggunakan try...catch
.
await
di dalam fungsi yang diberi async
.async
selalu mengembalikan Promise, bahkan jika kamu tidak eksplisit menuliskannya.await
hanya akan menunggu objek yang merupakan Promise. Jika bukan Promise, ia akan langsung mengembalikan nilainya.| Promise Chaining | Async/Await | | ----------------------------------- | --------------------------------------- | | .then().catch() | await + try/catch | | Lebih kompleks jika banyak chaining | Lebih mudah dibaca seperti kode biasa | | Cocok untuk callback fungsi kecil | Cocok untuk proses panjang dan kompleks |
async
dan await
adalah fitur modern JavaScript yang menyederhanakan cara kamu menulis kode asynchronous. Ia memungkinkanmu menulis kode yang lebih bersih, mudah dibaca, dan mirip dengan kode synchronous, tanpa kehilangan kekuatan asynchronous itu sendiri.
Dengan memahami callback
, Promise
, dan async/await
, kamu telah menguasai dasar penting dari asynchronous JavaScript. Di tahap berikutnya, kamu bisa mulai belajar konsep JavaScript modern (ES6+) seperti destructuring, spread operator, dan template literal.