Javascript 在async.each的帮助下在foreach中调用同步函数(带回调)
对不起,如果我的问题对你来说很简单!我对节点和回调是如此陌生!我有一个称为“find”的异步函数(带有回调),还有一个称为models的数组;因此,我想对模型中的每个模型同步调用这个“find”函数,并将结果追加到resultFound中: 我感谢你的帮助!请让我知道,如果你需要更多的澄清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) {
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);
}
});