微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获取具有多个嵌套承诺的服务器的返回值,例如 google Calendar API

如何解决如何获取具有多个嵌套承诺的服务器的返回值,例如 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 举报,一经查实,本站将立刻删除。