我已经编写了这段代码,它检索联系人列表,并显示一个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(users));谢谢你的建议
1条答案
按热度按时间bqucvtff1#
如果承诺被拒绝,await表达式将抛出拒绝的值。
你需要处理被拒绝的承诺。如果其中一个电话
delay
返回被拒绝的承诺,抛出被拒绝的值,函数的执行将停止,控制将传递给调用堆栈中的第一个catch块。等待操作员
throw语句