如何解决如何获取具有多个嵌套承诺的服务器的返回值,例如 google Calendar API
我不确定如何从下面的代码中获取返回值。我想从 createEvent 获得的 authorizeAndListEventsNew 方法中获取返回值。
我应该如何获得承诺中的返回值承诺,我尝试使用 async 和 await 以及承诺但没有成功。
function authorizeAndListEventsNew(createEvent,name,d,loc,mobile){
return fs.readFile("credentials.json",(err,content)=>{
if(err) return console.log('Error loading client secret file',err);
const {client_secret,client_id,javascript_origins} = credentials.web;
const oauth2client = new google.auth.OAuth2(
client_id,client_secret,javascript_origins);
return fs.readFile(TOKEN_PATH,token) => {
if (err) return getAccesstoken(oauth2client,callback);
oauth2client.setCredentials(JSON.parse(token));
callback(oauth2client,mobile);
});
});
}
function createEvent(auth,pname,std,desc){
const calendar = google.calendar({version: 'v3',auth});
listUpcommingEvents(calendar,std).then((res)=>{
var newDt=new Date(std);
if(res.length>0){
var sortEvts = res.sort((a,b)=> a - b);
var lastEle = sortEvts.slice(-1).pop();
newDt.setTime(lastEle.getTime());
} else {
newDt.setHours(09,0);
}
var endTime = new Date();
var d = new Date(newDt);
var endTime = moment(d).add(10,"m").toDate();
var event = {
'summary': pname,'location': loc,'description': desc,'start': {
'dateTime': d.toISOString(),'timeZone': 'xxx'
},'end': {
'dateTime': endTime.toISOString(),};
calendar.events.insert({
auth: auth,calendarId: CALENDAR_ID,resource: event,},function(err,event) {
if (err) {
console.log('There was an error contacting the Calendar service: ' + err);
return true;
}
console.log('Event created: %s',event);
return false;
});
});
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。