私は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);
}
ログには、複数のアイテムが検証され、配列 toReturn にプッシュされていることが示されています。ビューに送信されるデータは空の配列です。
node.js非同期でのループはありますか? for ループが完了する前にデータがビューに渡されていますか?
これを修正するにはどうすればよいですか?