Node.JS async.parallel混淆| 什么是由async.map返回
OneDrive和GDrive共有50个文件夹,每个文件夹包含500个文件。 onedriveUrls
和gdriveUrls
是length
50的数组,分别包含指向这些文件夹的链接。
混乱! 下面的代码预计在两个层次上并行运行,第一个是async.parallel
,第二个是async.map
,它是一个正确的代码,还是async.map
应该封装在setTimeout
以确保所有级别都是并行运行的?
async.parallel({ onedrive: function(callback){ async.map(onedriveUrls, request, function(err, results) { if (err) throw(err); // handle error callback(null,results); }); }, gdrive: function(callback){ async.map(gdriveUrls, request, function(err, results) { if (err) throw(err); // handle error callback(null,results); }); } }, function(err, results) { // results is now equals to: {onedrive: [array_of_length_x], gdrive: [array_of_length_y]} });
另外什么是由async.map返回 – 承诺还是什么?
快乐帮助!
这是一个正确的代码或async.map应该包裹在setTimeout,以确保所有级别运行并行?
号request
预计是asynchronous的,一切都很好。 在setTimeout
中包装任何东西都无济于事。
另外什么是由async.map返回 – 承诺还是什么?
没有。 map
像大多数其他asynchronous函数一样返回undefined
,它只调用结果数组的callback函数。
顺便说一句,你应该简化你的代码
async.parallel({ onedrive: function(callback) { async.map(onedriveUrls, request, callback); }, gdrive: function(callback) { async.map(gdriveUrls, request, callback); } }, function(err, results) { … });