Node.JSasync.parallel困惑 | async.map 返回了什么
Node.JS async.parallel confusion | what is returned by 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 返回的内容 -- promise 还是什么?
快乐帮助!
Is it a correct code or async.map should be wrapped in setTimeout to ensure all levels are running parallel?
没有。 request
预计是异步的,一切正常。用 setTimeout
包装任何东西都没有帮助。
Also what is returned by async.map -- promise or what?
没有。 map
returns undefined
与大多数其他异步函数一样,它仅使用结果数组调用其回调。
顺便说一句,您应该将代码简化为
async.parallel({
onedrive: function(callback) {
async.map(onedriveUrls, request, callback);
},
gdrive: function(callback) {
async.map(gdriveUrls, request, callback);
}
}, function(err, results) {
…
});
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 返回的内容 -- promise 还是什么?
快乐帮助!
Is it a correct code or async.map should be wrapped in setTimeout to ensure all levels are running parallel?
没有。 request
预计是异步的,一切正常。用 setTimeout
包装任何东西都没有帮助。
Also what is returned by async.map -- promise or what?
没有。 map
returns undefined
与大多数其他异步函数一样,它仅使用结果数组调用其回调。
顺便说一句,您应该将代码简化为
async.parallel({
onedrive: function(callback) {
async.map(onedriveUrls, request, callback);
},
gdrive: function(callback) {
async.map(gdriveUrls, request, callback);
}
}, function(err, results) {
…
});