javascript - Node.js - 使用异步库 - async.parallel 传递数组

标签 javascript node.js asynchronous

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

相关文章:

c - 如何使用 Gnome GIO 以非阻塞方式分块读取文件?

JavaScript ES6 : Create a id-value object from list

c# - 如何访问剪贴板图像并将其保存在 ASP.NET Web 应用程序中的服务器位置?

javascript - 对单词使用 String.substring

node.js - 使用Yarn从另一个脚本中调用一个脚本

node.js - Passport : Facebook Login asking for user_friends permission by default

Javascript:XHR 不处理多个异步请求

javascript - 通过JQuery改变背景图片

node.js - React Native 尚不支持 NPM 5

javascript - 有没有办法像 alert() 函数那样在 JavaScript 中强制执行同步行为?