Evolusi Asynchronous JavaScript
JavaScript telah berevolusi dari callbacks ke promises, dan sekarang async/await. Mari kita pahami setiap tahapannya.
Callback Hell
Sebelum promises, kita sering terjebak dalam callback hell:
getData(function(a) {
getMoreData(a, function(b) {
getEvenMoreData(b, function(c) {
// nested callbacks
});
});
});
Promises
Promises membuat kode lebih readable dengan chaining:
getData()
.then(a => getMoreData(a))
.then(b => getEvenMoreData(b))
.catch(err => console.error(err));
Async/Await
Async/await membuat asynchronous code terlihat seperti synchronous:
async function fetchData() {
try {
const a = await getData();
const b = await getMoreData(a);
const c = await getEvenMoreData(b);
return c;
} catch (err) {
console.error(err);
}
}