Junior — Middle+
52
Создание очереди AsyncQueue для гарантированного последовательного выполнения асинхронных функций
Task condition
Необходимо разработать класс, который будет выполнять переданные функции строго одна за другой, даже если они возвращают Promise.
const asyncQueue = new AsyncQueue();
asyncQueue.add(() => console.log("1"));
asyncQueue.add(
() =>
new Promise((resolve) => {
setTimeout(() => {
console.log("2");
resolve();
}, 1000);
})
);
asyncQueue.add(() => console.log("3"));
asyncQueue.add(
() =>
new Promise((resolve) => {
setTimeout(() => {
console.log("4");
resolve();
}, 500);
})
);