如何返回API的响应,它显示为未定义,但当我尝试打印它时,它会显示我想要的内容



nodejs文件

var result= async function meet(){
var link= undefined;

calendar.events.insert({
calendarId: 'primary', 
conferenceDataVersion: '1', 
resource: event 
}, (err, temp) => {
link = temp.data.hangoutLink; // I want to update link but it is not updating
});
return link;
}
console.log(result);//it shows undefined;

您使用https://github.com/yuhong90/node-google-calendar吗?

然后插入已经返回一个承诺:

var result= async function meet(){
let link = await calendar.events.insert({
calendarId: 'primary', 
conferenceDataVersion: '1', 
resource: event 
})
return link.data.hangoutLink
}

请。。。如果你把async放在它前面,它会给你一个承诺。

承诺是可能的,你可以在上面使用.then()来获得你的结果

result().then(res => {
console.log(res);
})

您可以查看此函数的async版本(如果存在(,并将其与awaitthen一起使用,也可以使用对new Promise的回调来包装此调用,如下所示:

var link= await (new Promise(resolve, reject) => {
calendar.events.insert(
{ calendarId: 'primary', conferenceDataVersion: '1', resource: event },
(err, temp) => {
if (err) {
reject(err)
}
resolve(temp.data.hangoutLink)
})
}));
return link;

最新更新