【发布时间】:2018-07-13 12:19:58
【问题描述】:
我的问题是如何在 Node Js 中编写嵌套循环
我的代码是
var result = db.data;
var FirstArray= new Array();
var SecondArray= new Array();
GetUserData();
async function GetUserData(){
for (let info of result) {
await getUserInfo(info);
}
res.send({status:"True", data: FirstArray, newdata:SecondArray });
}
function getUserInfo(info){
return new Promise(( resolve, reject )=>{
UserModel.UserType.findOne({'_id': info.UserId }, usersProjection, function(err, UserData) {
if(err) {
res.send({status:"Fale", Error:err });
reject(err);
} else {
var data = UserData;
FirstArray.push(data);
GetUser();
async function GetUser(){
for (let newinfo of data ) {
await getnewUserInfo(newinfo);
}
}
function getnewUserInfo(newinfo){
return new Promise(( resolve, reject )=>{
UserModel.UserTypeNew.findOne({'_id': newinfo.UserId }, usersProjection, function(newerr, UserData) {
if(newerr) {
res.send({status:"Fale", Error:newerr });
reject(err);
} else {
SecondArray.push(UserData)
resolve();
}
});
});
}
}
});
});
}
我将只获取第一个循环详细信息 如何获取第二个循环详细信息。
也建议另一种方法。
那么哪种方法是嵌套循环的最佳实践。
【问题讨论】:
-
如果你有一个工作循环但想改进它,这个问题最好在Code Review Stack Exchange 上提出。
-
我相信 OP 是在询问如何获取第二个循环的详细信息,但它并不完全清楚。如果是这样,那将是代码审查的主题。
标签: javascript arrays node.js mongoose async-await