【发布时间】:2019-02-06 09:21:15
【问题描述】:
我编写了这段代码来检索联系人列表并作为响应显示 JSON 一切正常,但代码没有显示任何输出我应该怎么做?这是我的代码:
export const ContactListPost = (req, res) => {
//const userHeader = req.get('userid');
const contacts = req.body;
console.log(contacts);
let users = [];
const delay = contact => new Promise(function (resolve, reject) {
let sql = "select user.userid, user.fullname, user.phone,
photos.name as photo_link " +
"from user left outer join photos on photos.uploader_id = user.userid where user.phone = ?";
console.log("contact " + contact);
con.query(sql, [contact], function (err, result) {
if (err){
console.log(err);
reject(err);
} else{
if (result.length > 0) {
users.push(result);
console.log(result);
resolve(result);
}else{
console.log("empty number");
//reject(result);
}
}
})
});
(async function loop() {
for (let i = 0; i< contacts.length ; i++){
let result = await delay(contacts[i].number);
users.push(result);
console.log("result " + JSON.stringify(result));
console.log("i " + i);
}
console.log("users " + JSON.stringify(users));
res.json(JSON.stringify(users));
})();
};
这段代码不显示
console.log("用户" + JSON.stringify(users));
res.json(JSON.stringify(users)); 谢谢建议
【问题讨论】:
-
旁注:始终兑现您的承诺,即履行或拒绝。您的一条路径无法解决承诺。
-
旁注:如果您已经使用该值解析承诺,为什么要将结果推送到用户数组
users.push(result);?
标签: mysql node.js promise async-await