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