Введение
В этом практическом занятии мы изучим, как последовательно вызывать асинхронные функции в JavaScript. Мы узнаем, как пройти по массиву функций, содержащих асинхронные события, и вызывать функцию next, когда каждое событие завершится. В конце практического занятия вы сможете эффективно выполнять серию асинхронных операций в определенном порядке.
Последовательное выполнение асинхронных функций
Для последовательного выполнения асинхронных функций откройте Терминал/SSH и введите node. Затем пройдите по массиву функций, содержащих асинхронные события, и вызовите функцию next, когда каждое асинхронное событие завершится.
Вот фрагмент кода, демонстрирующий, как последовательно выполнять асинхронные функции:
const chainAsync = (fns) => {
let curr = 0;
const last = fns[fns.length - 1];
const next = () => {
const fn = fns[curr++];
fn === last ? fn() : fn(next);
};
next();
};
chainAsync([
(next) => {
console.log("0 seconds");
setTimeout(next, 1000);
},
(next) => {
console.log("1 second");
setTimeout(next, 1000);
},
() => {
console.log("2 second");
}
]);
Резюме
Поздравляем! Вы завершили практическое занятие по последовательному выполнению асинхронных функций. Вы можете попрактиковаться в других практических занятиях в LabEx, чтобы улучшить свои навыки.