【发布时间】:2021-11-18 23:31:44
【问题描述】:
我已经初始化了一个数组“userTasklist”。我已经在 .map 函数中推送了这个数组中的对象。 .map 之后,我有控制台这个数组,但数组是空白的。
比我在 .map 函数中控制对象并且所有值都打印成功,但在 Array 中没有值。不知道为什么。
exports.allUserList = (req, res) => {
let userID = req.params.userid;
const ghusersQuery = "SELECT user_id, name, employee_code FROM users WHERE under_gh = ?";
conn.query(ghusersQuery, [userID], (err, userdata) => {
if (err) {
res.send({ message: err })
} else {
if (userdata && userdata.length > 0) {
let userTasklist = [];
userdata.map((datauser) => {
var objtask = {};
const userDataQuery = "SELECT * FROM tasklist WHERE user_id = ?";
conn.query(userDataQuery, [datauser.user_id], (errnew, taskdata) => {
if (taskdata && taskdata.length > 0) {
objtask = {
userid: datauser.user_id,
tasklist: taskdata
}
userTasklist.push(objtask);
}
})
})
console.log(userTasklist)
res.send({ message: "user list fetched", userdata: userdata, tasklistdata: userTasklist })
} else {
res.send({ message: "Data not found!" })
}
}
})
}
【问题讨论】:
-
你能详细解释一下吗。我是NodeJS的新手
-
问题是,userDataQuery的函数是在userTasklist之后调用的。在avoiding this so called callback hell 上查看这篇文章:-)