Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在async.each的帮助下在foreach中调用同步函数(带回调)_Javascript_Node.js_Asynchronous_Express - Fatal编程技术网

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

Javascript 在async.each的帮助下在foreach中调用同步函数(带回调),javascript,node.js,asynchronous,express,Javascript,Node.js,Asynchronous,Express,对不起,如果我的问题对你来说很简单!我对节点和回调是如此陌生!我有一个称为“find”的异步函数(带有回调),还有一个称为models的数组;因此,我想对模型中的每个模型同步调用这个“find”函数,并将结果追加到resultFound中: 我感谢你的帮助!请让我知道,如果你需要更多的澄清 st.find(param1, model, param2, param3, function (err, data) { if (err) {

对不起,如果我的问题对你来说很简单!我对节点和回调是如此陌生!我有一个称为“find”的异步函数(带有回调),还有一个称为models的数组;因此,我想对模型中的每个模型同步调用这个“find”函数,并将结果追加到resultFound中:

我感谢你的帮助!请让我知道,如果你需要更多的澄清

      st.find(param1, model, param2, param3, function (err, data) {
            if (err) {
                res.json(400, err);
            } else {
                res.json(200, data);
            }
        });
以下是我的尝试(我认为在st.find()中返回是错误的;但我刚才提到了我尝试让您了解我正在尝试的操作!):


async
的方法将回调
函数
传递给
迭代器
,在本例中是
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);
}
但是,未将定义为期望向回调提供
数据

将接受
数据
的方法是,它已经创建了一个新的集合,您可以将其用作
resultFound

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

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

res
来自哪里?它位于Express中的路由器内;get('/test',function(req,res){})您可能可以通过承诺来实现这一点。看看这是否有帮助,我知道这是可行的承诺,但出于某种原因,我们不应该使用它!这解释太棒了!谢谢
var models = ["test1", "tes2"];

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