我有一个var gehad
调用一个函数,该函数从Google日历中获取所有事件,并将它们推送到名为" test"的数组中。然后测试数组返回到var gehad
,但它总是返回一个没有length
的数组。
同样在我将事件推入测试阵列的循环中,我可以console.log(test[0].id)
并且它将return
id。但如果我console.log
在循环外面做同样的事情。它返回Uncaught TypeError
我很困惑为什么会这样做。
我的代码:
var gehad = listUpcomingEvents();
console.log(gehad); //<!-- output:[0]{kind: "calendar#event, id: "10010", status: "confirmed", …} length:1 __proto__: Array(0)
console.log('gehad.length: ' + gehad.length); //<!-- output: 0; expected output: 1
console.log(gehad[0]);//<!-- output: undefined
function listUpcomingEvents() {
//Creates a list of all events on the google Calendar
var test = [];
gapi.client.calendar.events.list({
'calendarId': 'primary',
'timeMin': (new Date()).toISOString(),
'showDeleted': false,
}).then(function (response) {
var events = response.result.items;
if (events.length > 0) {
for (i = 0; i < events.length; i++) {
test.push(events[i]);
console.log(test[0].id) //<!-- returns a valid id
}
}
});
console.log(test[0].id) //<!-- Uncaught TypeError: Cannot read property 'id' of undefined
return test;
}
谢谢。
(是的,我的谷歌日历上有活动)