Google Calendar JavaScript API-添加多个事件

gpe*_*ana 1 javascript google-calendar-api google-api

当我尝试通过javascript v3 api将多个事件添加到Google日历时遇到了一个问题。

我有一个数组,条目是这样的事件:

newEvent = {
    "summary": response[i].name+" BDay!!",
    "start": {
      "dateTime": date
    },
    "end": {
      "dateTime": date
    }
  };

  events[i]=newEvent;
Run Code Online (Sandbox Code Playgroud)

之后,我打电话给Google Calendar API以添加事件:

var request;
for(var j = 0; j<events.length; j++) {

  console.log(events[j]);

  request = gapi.client.calendar.events.insert({
    'calendarId': calendarId,
    'resource': events[j]
  });
  request.execute(function(resp) {
   console.log(resp);
 });
}
Run Code Online (Sandbox Code Playgroud)

但是,事实证明,所有事件都放在日历的同一日期(实际上是数组events []中的最后一个日期)。我认为可能是因为请求是回调函数,但我不确定。

希望能有所帮助!

sor*_*ive 5

如果要一次插入多个事件,则应使用批处理。

var batch = gapi.client.newBatch();
batch.add(gapi.client.calendar.events.insert({
    'calendarId': 'primary',
    'resource': events[0]
}));
batch.add(gapi.client.calendar.events.insert({
    'calendarId': 'primary',
    'resource': events[1]
}));
batch.add(gapi.client.calendar.events.insert({
    'calendarId': 'primary',
    'resource': events[2]
}));
            ......

batch.then(function(){
    console.log('all jobs done!!!')
});
Run Code Online (Sandbox Code Playgroud)