Javascript 节点js(sails.js),用于在循环完成之前向视图发送数据

Javascript 节点js(sails.js),用于在循环完成之前向视图发送数据,javascript,node.js,asynchronous,sails.js,sails-mongo,Javascript,Node.js,Asynchronous,Sails.js,Sails Mongo,我对node.js和sails.js相当陌生,但对javascript不熟悉。我有一个简单的函数,可以迭代一个abject数组,对它们进行验证,数组中每个经过验证的对象都被推到另一个数组中,我想传递到我的视图中 if(results){ var items = results.one; var toReturn = []; for(var i = 0; i<items.length; i++){ var item = items[i];

我对node.js和sails.js相当陌生,但对javascript不熟悉。我有一个简单的函数,可以迭代一个abject数组,对它们进行验证,数组中每个经过验证的对象都被推到另一个数组中,我想传递到我的视图中

if(results){
    var items = results.one;
    var toReturn = [];
    for(var i = 0; i<items.length; i++){
        var item = items[i];
        Inventory.findOne({primaryKey: item.primaryKey}, function(err, found){
            if(err){
                res.send("Err reached");
            }
            else{
                //Some validation code

                if (validations_failed_condition){
                    console.log("FAiled validations");
                }
                else{
                    console.log("Validations passed, Pushing item");
                    console.log(item);
                    toReturn.push(item);
                }
            }
        });
    }
    res.send(toReturn);
}
if(结果){
var项目=结果1;
var toReturn=[];

对于(var i=0;iNot),循环是异步的,但是在循环体中启动的
findOne
方法。@Bergi我想这就是问题所在。我如何解决这个问题?您需要将
res.send
放在一个在最后一个
findOne
回调之后运行的回调中。或者库可以提供帮助。可能的重复