我编写这段代码是为了查询谷歌日历 API 并返回结果。
为了简单起见,我将变量 x 插入到函数中。根据我的直觉,x 应该打印为 1,但它总是打印为 1。
最初的问题是日历的结果总是未定义,尽管如果我在异步调用中打印它,它会被正确打印。
我做错了什么,请问如何解决?
async askCal() {
let x = 0;
await this.calendar.freebusy.query(this.auth, (err, response) => {
x = 1;
if (err) { console.log('error: ' + err) }
})
console.log({ x })
}
答案 0 :(得分:2)
你在回调和等待/异步之间混合,
async askCal() {
try{
let x = 0;
const response = await this.calendar.freebusy.query(this.auth);
x = 1;
console.log({ x });
}catch(e){console.error(e.message);}
}