我有以下并行获取数据的函数。获取数据完成后,结果将通过回调函数中的“results”变量提供。我需要参数化而不是硬编码“产品”、“图像”等。我需要能够传递一个数组。 (即我需要说 var fetchInParallel = function (id, res, names)
)其中 names = ['products', 'images']
我该怎么做?我试过using forEach没有运气。
var fetchInParallel = function (id, res) {
async.parallel(
[
function (callback) {
commonService.findById('products', id, function (result) {
callback(false, result);
})
},
function (callback) {
commonService.findById('images', id, function (result) {
callback(false, result);
})
}
],
function (err, results) {
// handle errors code
var products = results[0];
var volatile = results[1];
var target = stitch(products,images);
res.send(target)
}
);
}
最佳答案
您正在寻找map
function :
function fetchInParallel(id, names, res) {
async.map(names, function(name, callback) {
commonService.findById(name, id, function (result) {
callback(null, result);
});
}, function (err, results) {
if (err)
… // handle error code
var target = stitch(results); // combine names with results
res.send(target)
});
}
关于javascript - Node.js - 使用异步库 - async.parallel 传递数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28749185/