function doIteration(usersIds,userProfiles) { if(userProfiles==null) userProfiles=[]; let userId=usersIds.shift(); app.db.db().collection("main").findOne({tag: "DATA", uId: userId}, (err, userData) => { if(userData!=null) userProfiles.push(userData); if(usersIds.length!==0) doIteration(usersIds,userProfiles); else proceed(userProfiles); }); }
这么迭代可以么?特别的, usersIds 和 userProfiles 这两个变量,在 findOne 的回调里面和外面是同一个意思么?
1 wode234 2018-08-24 15:40:20 +08:00 ![]() 如果你问 usersIds 和 userProfiles 在回调里外是不是同一个意思,那肯定是同一个意思的,我看你是想吧 usersIds 中所有的用户信息 userData 存到 userProfiles 中,应该是 ok 的 |
3 zkx664832 2018-08-24 15:58:36 +08:00 ![]() find({ tag: "DATA", uId: { $in: usersIds } }) 为什么要每次取一个 id 出来去查??? 一个查询就出来啦 |