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');
});