如何 return API 的响应,它显示未定义但是当我尝试打印它时,它显示了我想要的

how to return the response of an API , it shows undefined but when I try to print it , it shows exactly what I want

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;

您可以查看此函数的 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;

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

那么 insert 已经是 returningn 一个 promise:

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

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

Promise 是可行的,您可以对其使用 .then() 以获得结果

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