为什么我的功能会返回空的'排列

时间:2018-04-09 14:15:30

标签: javascript jquery arrays google-calendar-api

我有一个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;
}

谢谢。

(是的,我的谷歌日历上有活动)

0 个答案:

没有答案