安排异步任务的列表(旧学校的nodejs没有承诺)
我想在不使用Promise&的情况下启动一系列异步任务。异步等待。 我的worfklow是: 。任务1 。任务2 。任务3& 4(并行)
我尝试了库异步。对于一系列的顺序任务或一系列并行,这是可以的。但是,要实施我的工作,我暂时坚持了。
const async = require('async');
const fs = require('fs');
const readFile1 = (name, callback) => {
fs.readFile(name, 'utf-8', (err, data) => {
if (err) {
callback(err);
}
console.log(data);
callback(null, data);
});
}
async.series([
function(callback1) {
async.series([
function(callback1) {
readFile1('./1.txt', callback1);
},
function(callback1) {
readFile1('./2.txt', callback1);
},
], function(err, results) {
console.log('series ', results);
});
},
function(callback2) {
async.parallel([
function(callback2) {
readFile1('./3.txt', callback2);
},
function(callback2) {
readFile1('./4.txt', callback2);
},
], function(err, results) {
console.log('parallel ', results);
});
}
]);
目前只有步骤1& 2执行。您是否有一个想法(使用异步 /等待的更现代的代码样式?
)
I want to launch a series of async tasks without using Promise & Async await.
My worfklow is :
. task 1
. task 2
. task 3 & 4 (in parallel)
I've tried the library async for that. That's ok for a series of sequential task or a series of parallel. But to implement my worklfow, I'm stuck for the moment.
const async = require('async');
const fs = require('fs');
const readFile1 = (name, callback) => {
fs.readFile(name, 'utf-8', (err, data) => {
if (err) {
callback(err);
}
console.log(data);
callback(null, data);
});
}
async.series([
function(callback1) {
async.series([
function(callback1) {
readFile1('./1.txt', callback1);
},
function(callback1) {
readFile1('./2.txt', callback1);
},
], function(err, results) {
console.log('series ', results);
});
},
function(callback2) {
async.parallel([
function(callback2) {
readFile1('./3.txt', callback2);
},
function(callback2) {
readFile1('./4.txt', callback2);
},
], function(err, results) {
console.log('parallel ', results);
});
}
]);
For now only the step 1 & 2 are executed. Have you got an idea for this (apart using a more modern code style with async / await & promises?)
Blured
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要在
async.series()
之前拨打顶级回调,将继续进行下一步:(重命名的回调名称以使情况更加清晰一些)
You need to call the top-level callbacks before
async.series()
will continue to the next step:(renamed callback names to make things a bit more clear)