我知道这不是一个独特的问题。我读过其中一些。但是,仍然找不到解决方案。
model.js (将负载保存到数据库。如果确定,请解析承诺)
let createUser = payload => {
try {
if( err ) return Promise.reject(err);
else {
payload.save();
return Promise.resolve(true);
}
} catch (error) {
console.log(error);
return Promise.reject(error);
}
}
controller.js (将有效负载发送到模型,如果可以,则解析)
let createUser = async payload => {
try {
let ret = await User.phoneExists(payload.phone);
if ( ret === false) {
await User.createUser(payload);
return Promise.resolve(true);
}
else return Promise.reject(false);
} catch (error) {
console.error(error);
return Promise.reject(false);
}
}
最后 :(呼叫控制器)
let createUser = async (req, res) => {
try {
await proc.createUser(req.body);
res.status(200).json({ message: "Account created successfully." });
} catch (error) {
if( error === false ) res.status(400).json({ message: "Message" });
else res.status(417).json({ message: "Unknown error." });
}
}
但是,我正在接受UnhandledPromiseRejectionWarning。我试着在 try-catch 块中写下所有内容。
不使用.catch()吗?如何使用.catch()和async / await?
我做错了什么?怎么解决这个问题?
更新
我的payload.save()
被拒绝了。
由于