繁体   English   中英

在async.each的帮助下在foreach中调用同步函数(带回调)

[英]calling a synchronous function (with call back) in foreach with the help of async.each

对不起,如果我的问题对你来说很简单! 我是Node和回调的新手! 我有一个叫做“find”的异步函数(有一个回调函数),我也有一个叫做模型的数组; 所以我想与模型中的每个模型同步调用这个“查找”函数,并将结果附加到resultFound中:

我感谢您的帮助! 如果您需要更多说明,请告诉我。

      st.find(param1, model, param2, param3, function (err, data) {
            if (err) {
                res.json(400, err);
            } else {
                res.json(200, data);
            }
        });

这是我的尝试(我相信在st.find()中返回是错误的;但我刚刚提到我尝试给你一个洞察我正在尝试做的事情!):

   var models = ["test1", "tes2"];
    var resultFound = [];
    async.each(models, find, function (err, data) {
        resultSearch.push(data);

    });

    function find(model) {
        st.find(param1, model, param2, param3, function (err, data) {
            return data;
        });
   }

async的方法会将回调function传递给iterator ,在本例中为find() ,它希望调用它来知道何时继续。

function find(model, callback) {
    st.find(param1, model, param2, param3, function (err, data) {
        callback(err, data);
    });

    // or possibly just:
    // st.find(param1, model, param2, param3, callback);
}

但是, async.each()未定义为期望将data提供给回调。

接受data方法是async.map() ,它已经创建了一个可以用作resultFound的新集合。

var models = ["test1", "tes2"];

async.map(models, find, function (err, resultFound) {
    if (err) {
        res.json(400, err);
    } else {
        res.json(200, resultFound);
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM