MST
星途 面试题库

面试题:Node.js中如何实现简单的异步任务队列

请用Node.js代码实现一个简单的异步任务队列,要求可以依次执行多个异步任务,并且每个任务执行完毕后再执行下一个任务,假设异步任务以Promise的形式表示。
25.8万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试
function asyncTaskQueue(tasks) {
    return tasks.reduce((promiseChain, currentTask) => {
        return promiseChain.then(() => currentTask());
    }, Promise.resolve());
}

// 示例用法
const task1 = () => new Promise((resolve) => {
    setTimeout(() => {
        console.log('Task 1 completed');
        resolve();
    }, 1000);
});
const task2 = () => new Promise((resolve) => {
    setTimeout(() => {
        console.log('Task 2 completed');
        resolve();
    }, 1500);
});
const task3 = () => new Promise((resolve) => {
    setTimeout(() => {
        console.log('Task 3 completed');
        resolve();
    }, 2000);
});

const tasks = [task1, task2, task3];
asyncTaskQueue(tasks).then(() => {
    console.log('All tasks completed');
});