javascript删除async.parallel中的函数

时间:2015-12-22 17:52:44

标签: javascript function async.js asynccallback

这个问题可能看起来很简单,但我在javascript方面有0经验,并且对回调函数感到困惑。

原始代码使用“async.parallel”填充了一些“async.each”。

function fillMap(listElements, elementMap, params, callBack) {
    async.each(listElements, function findElement(listElement, forEachCallBack) {
        async.parallel(
            {
                fun1: function getUniqueElement(parallelCallBack) {
                    params.getResponse1(parallelCallBack);
                },
                fun2: function getElement(parallelCallBack) {
                    params.getResponse2(parallelCallBack);
                }

            },
            function fillElement(err, res) {
                if (err) {
                    return forEachCallBack(err);
                }
                elementMap[listElement] = res.body;
                forEachCallBack();
            });
    }, callBack);
}

现在我不需要async.parallel中的第一个函数,我只需要“getElement”但不需要“getUniqueElement”。我该如何从async.parallel体中删除它?而且我不需要“async.parallel”但是我不知道怎么能用“fillElement”调用“getElement”仍然收到响应体..

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

从async.parallel

中删除getUniqueElement
function fillMap(listElements, elementMap, params, callBack) {
    async.each(listElements, function findElement(listElement, forEachCallBack) {
        async.parallel(
            {
                fun2: function getElement(parallelCallBack) {
                    params.getResponse2(parallelCallBack);
                }
            },
            function fillElement(err, res) {
                if (err) {
                    return forEachCallBack(err);
                }
                elementMap[listElement] = res.body;
                forEachCallBack();
            });
    }, cb);
}

删除整个async.parallel块

function fillMap(listElements, elementMap, params, callBack) {
    async.each(listElements, function findElement(listElement, forEachCallBack) {
        var fillElement = function (err, res) {
            if (err) {
                return forEachCallBack(err);
            }
            elementMap[listElement] = res.body;
            forEachCallBack();
        }

        var getElement = function (callback) {
            params.getResponse2(callback);
        };

        getElement(fillElement);

    }, callBack);
}

尝试通过api https://github.com/caolan/async 如有任何疑问,请随时提出。