如何检查 google 日历 api 请求是否已完成?
How to check if google calendar api request has finished?
这是官方 Google 日历 api 示例的一部分。此代码异步执行,这意味着如果我在下面放置一个使用接收到的数据的函数,它会在获得所需结果之前启动。如何确保请求已完成其工作并准备好结果?谢谢
function listUpcomingEvents() {
var request = gapi.client.calendar.events.list({
'calendarId': 'primary',
'timeMin': (new Date()).toISOString(),
'showDeleted': false,
'singleEvents': true,
'maxResults': 10,
'orderBy': 'startTime'
});
request.execute(function(resp) {
var events = resp.items;
appendPre('Upcoming events:');
if (events.length > 0) {
for (i = 0; i < events.length; i++) {
var event = events[i];
var when = event.start.dateTime;
if (!when) {
when = event.start.date;
}
appendPre(event.summary + ' (' + when + ')')
}
} else {
appendPre('No upcoming events found.');
}
});
}
创建您自己的函数
myEvents(events){
// console.log(events);
}
在请求回调中调用
这里的匿名函数是Google日历请求回调。所以当请求完成后,这个函数就会被执行。
function listUpcomingEvents() {
[...]
// Google calendar API request
request.execute(function(resp) {
// Google calendar API request has finished
var events = resp.items;
appendPre('Upcoming events:');
if (events.length > 0) {
for (i = 0; i < events.length; i++) {
var event = events[i];
var when = event.start.dateTime;
if (!when) {
when = event.start.date;
}
appendPre(event.summary + ' (' + when + ')')
}
} else {
appendPre('No upcoming events found.');
}
// Here, you're function call
myEvents(events)
});
}
这是官方 Google 日历 api 示例的一部分。此代码异步执行,这意味着如果我在下面放置一个使用接收到的数据的函数,它会在获得所需结果之前启动。如何确保请求已完成其工作并准备好结果?谢谢
function listUpcomingEvents() {
var request = gapi.client.calendar.events.list({
'calendarId': 'primary',
'timeMin': (new Date()).toISOString(),
'showDeleted': false,
'singleEvents': true,
'maxResults': 10,
'orderBy': 'startTime'
});
request.execute(function(resp) {
var events = resp.items;
appendPre('Upcoming events:');
if (events.length > 0) {
for (i = 0; i < events.length; i++) {
var event = events[i];
var when = event.start.dateTime;
if (!when) {
when = event.start.date;
}
appendPre(event.summary + ' (' + when + ')')
}
} else {
appendPre('No upcoming events found.');
}
});
}
创建您自己的函数
myEvents(events){
// console.log(events);
}
在请求回调中调用
这里的匿名函数是Google日历请求回调。所以当请求完成后,这个函数就会被执行。
function listUpcomingEvents() {
[...]
// Google calendar API request
request.execute(function(resp) {
// Google calendar API request has finished
var events = resp.items;
appendPre('Upcoming events:');
if (events.length > 0) {
for (i = 0; i < events.length; i++) {
var event = events[i];
var when = event.start.dateTime;
if (!when) {
when = event.start.date;
}
appendPre(event.summary + ' (' + when + ')')
}
} else {
appendPre('No upcoming events found.');
}
// Here, you're function call
myEvents(events)
});
}