我已经编写了这段代码来检索联系人列表,并作为响应显示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(用户));
res.json(JSON.stringify(users)); 谢谢你的建议
答案 0 :(得分:0)
如果承诺被拒绝,则await表达式将抛出被拒绝的值。
您需要处理被拒绝的承诺。如果对delay
的调用之一返回了拒绝的诺言,则会抛出该拒绝的值,并且该函数的执行将停止,并将控制权传递给调用堆栈中的第一个catch块。