如何 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
版本(如果存在)并将其与 await
或 then
一起使用,或者您可以将此调用包装为回调 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);
})
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
版本(如果存在)并将其与 await
或 then
一起使用,或者您可以将此调用包装为回调 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);
})