【发布时间】:2021-04-14 20:17:07
【问题描述】:
我相信这是现代 JavaScript 中最基本/初学者的问题之一。有很多类似的问题存在,我已经解决了大部分问题。但由于我找不到准确的答案,我将我的问题发布在一个新问题中。
我在节点和快递应用程序中使用sequelize。现在,像findOne 这样的所有查询函数本质上都是async。我有两个功能,
function A(){
B()
.then((result:any) => {
if(result){
// Do something
}
});
}
async function B(){
sequelizeModel.findOne({where: {<col>:<val>}})
.then((result:any) => {
if(result === null){
return true;
}
else{
return false;
}
})
.catch((error: any) => {
console.error(error);
return false;
});
}
B() 检查数据库以查看是否存在特定数据行。因此,它将返回true/false。基于 A() 执行某些活动。
现在,B() 总是得到result = undefined。
一个解决方案是,
function A(){
B()
.then((result:any) => {
if(result === null){
// Do something
}
})
.catch((error:any) => {
console.error(error);
});
}
async function B(){
return await sequelizeModel.findOne({where: {<col>:<val>}});
}
但是有什么办法让我不想将空检查逻辑放在A() 中并在B() 中执行它。 (可能我缺少一些重要的理解)
【问题讨论】:
标签: javascript node.js express async-await sequelize.js