我有下面的函数来并行获取数据。提取数据完成后,结果将通过回调函数中的'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/