下面是我的代码。在代码中,我试图对表进行查询。但是问题是,甚至在首先打印了await函数之后使用了await以下控制台之后,才调用回调函数。首先进行回调调用然后将调用以下控制台的解决方案是什么?
async getUsers() {
let sql = 'SELECT * FROM login';
let query = await this.db.query(sql, (err, result)=>{
if(err) throw err;
this.res = JSON.stringify(result);
console.log(this.res); //calls second
});
console.log(this.res); // calls first
return this.res;
}
答案 0 :(得分:2)
如果您使用的是Node MySQL 2,则根据此处的文档,语法应如下:Promise wrappers。
要理解的是,Promise
旨在使回调不再需要。反过来,async/await
旨在使Promise
更易于理解。
async getUsers() {
try {
const result = await this.db.query('SELECT * FROM login');
this.res = JSON.stringify(result);
return this.res;
} catch (err) {
console.error(err);
}
}