Javascript 将数组推入常量内部。然后
我试图将一个值放入常量中,但它位于Javascript 将数组推入常量内部。然后,javascript,node.js,sequelize.js,Javascript,Node.js,Sequelize.js,我试图将一个值放入常量中,但它位于中。然后,不起作用。你知道我该怎么做吗 如果的话,我会在我的控制台.log(newResult)中得到一个值,但返回的数据不会被推入我的constnewResult res.status(200).json(newResult) 当我处于if状态时,每个测试都会返回一个空选项卡,因为您正在执行async调用,所以它永远不会工作 models.User.findOne内置forEach 当完成对数据库的异步调用以获取用户时,您将在控制台.log上获得结果 但是在这
中。然后,
不起作用。你知道我该怎么做吗
如果的话,我会在我的控制台.log(newResult)
中得到一个值,但返回的数据不会被推入我的constnewResult
res.status(200).json(newResult)代码>
当我处于if状态时,每个测试都会返回一个空选项卡,因为您正在执行async
调用,所以它永远不会工作
models.User.findOne
内置forEach
当完成对数据库的异步调用以获取用户时,您将在控制台.log上获得结果
但是在这一切发生之前,forEach
已经执行完毕,代码到达行res.status(200).json(newResult)代码>并且您不会看到您的if
条件的任何结果
不要使用这种方法,而是使用mongoosepopulate
和基于用户对象的userID
来查找friends
,这样您就不必在forEach
中进行异步调用
有关猫鼬的信息,请访问:
.then(function (friends) {
if (friends) {
const newResult = [];
friends.forEach((r) => {
if (r.UserID == userFound.id) {
models.User.findOne({
where: {
id: r.idFriend
}
})
.then(function(userFound) {
newResult.push({
id: r.id,
user: {
id: r.User.id,
email: userFound.email,
username: userFound.username
}
});
console.log(newResult)
})
} else
newResult.push({
id: r.id,
user: {
id: r.User.id,
email: r.User.email,
username: r.User.username
}
});
console.log(newResult)
});
res.status(200).json(newResult);
}
}