我正在制作一个 Node-js 应用程序,该应用程序需要在进行另一个 db-call 之前从数据库中查找一些信息,但我似乎无法确保在继续之前第一次检查已解决。如何确保在继续之前始终完成第一个查询?我试过嵌套.next,但它们似乎无论如何都在跳过。因此,在第一次 DB 调用之后,我想检查返回的值,但它始终未定义。
我的异步功能:
async function GetStuff(text, id){
try {
return await db.query(text, id);
} catch(error) {
console.log('fel inne: ' + error)
logger.error('Fel: ' + error)
return null;
}
}
我调用该方法的控制器代码,然后尝试使用 .next 等待调用。
router.post('/newStuff', async (req, res) => {
//Check if number exist in DB
const checkUserText = 'select * from public.User WHERE Mobilenumber = $1 limit 1';
const values = [req.body.from];
GetStuff(checkUserText, values)
.then(function(result) {
var user = result.rows[0];
//HERE I GET UNDEFINED for some reason. I need to check the result in order to select the next step.
if(user.userid !== null){
console.log(user)
//do some stuff...
}
else {
res.end('Not OK')
}
}).catch(function(error) {
console.log('fel: ' + error)
logger.error('Fel: ' + error)
res.end('Error')
});
})