
【工具】js队列 一个任务完成再执行下一个任务class TaskQueue { constructor() { this.queue []; this.isProcessing false; } add(task) { // 将任务添加到队列中 this.queue.push(task); // 如果没有正在处理的任务则开始处理队列 if (!this.isProcessing) { this.processQueue(); } } async processQueue() { this.isProcessing true; while (this.queue.length 0) { const task this.queue.shift(); // 取出队列中的第一个任务 // 等待任务完成 await task(); // 此处可以加入其他逻辑比如错误处理等 } this.isProcessing false; } } // 使用示例 const queue new TaskQueue(); queue.add(() new Promise(resolve setTimeout(() { console.log(Task 1 completed); resolve(); }, 1000))); queue.add(() new Promise(resolve setTimeout(() { console.log(Task 2 completed); resolve(); }, 500))); queue.add(() new Promise(resolve setTimeout(() { console.log(Task 3 completed); resolve(); }, 2000)));