安装模块
npm install async
nodejs代码
const async = require('async');
// 创建一个异步队列
const q = async.queue((task, done) => {
// 模拟异步操作,例如数据库操作或HTTP请求
setTimeout(() => {
console.log(`Processing task ${task.name}`);
// 完成后调用 done 回调
done();
}, task.duration);
}, 2); // 第二个参数是并发数,这里设置为2,表示队列是顺序执行的
// 队列任务完成时的处理
q.drain = function() {
console.log('All tasks have been processed');
};
// 队列任务出错时的处理
q.error = function(err, task) {
console.log(`任务出错: ${err.message}`);
done(); // 确保队列继续处理下一个任务
};
// 向队列中添加任务
q.push({name: 'Task 1', duration: 2000}, (err) => {
if (err) {
console.log('任务处理出错');
}
});
q.push({name: 'Task 2', duration: 3000}, (err) => {
if (err) {
console.log('任务处理出错');
}
});
q.push({name: 'Task 3', duration: 4000}, (err) => {
if (err) {
console.log('任务处理出错');
}
});
运行node .\app.js
看效果