3 примера асинхронного вызова функции в JavaScript
Примеры показывают три разных подхода к организации кода. Все 3 примера выполняют одно и тоже.
Функции обратного вызова
// callbacks
getData((a) => {
getMoreData(a, (b) => {
getMoreData(b, (c) => {
getMoreData(c, (d) => {
getMoreData(d, (e) => {
console.log(e);
})
})
})
})
});
Обещания
// promises
getData()
.then(a => getMoreData(a))
.then(b => getMoreData(b))
.then(c => getMoreData(c))
.then(d => getMoreData(d))
.then(e => console.log(e));
Async/await
"синтаксический сахар" для обещаний
// async/await
(async () => {
const a = await getData();
const b = await getMoreData(a);
const c = await getMoreData(b);
const d = await getMoreData(c);
const e = await getMoreData(d);
console.log(e);
})();