我需要從他的日曆顯示的用戶的所有事件。我得到所有日曆的列表,然後遍歷每個日曆獲取事件並嘗試將它們存儲在一個數組中。推值陣列的NodeJS
app.get('/getEventsList/', function (req, res) {
newArray = [];
function Done(){
console.log(newArray);
}
function getEventsforOneCalendar(token,calid){
gcal(token).events.list(calid, function(err, eventsList) {
newArray.push(eventsList);
});
}
function getEventsList(token) {
gcal(token).calendarList.list(function (err, calendarList) {
if (err) {
//handle error
} else {
calendars = calendarList.items;
forEach(calendars, function (item, index) {
getEventsforOneCalendar(token,item.id);
}, Done);
}
});
}
getEventsList('xxxxxxxxxxxtoken');
});
問題是:該行 newArray.push(eventsList);
任何價值,甚至在靜這條線通過不走像 newArray.push(「測試」); 並且不會引發錯誤。如果我登錄它,我可以在控制檯中看到它,但它永遠不會被添加到數組中。
什麼可能是錯誤的?
這取決於你的'newArray'範圍屬於哪裏,你何時調用它。由於'getEventsforOneCalendar'調用是異步的,它的輸出可能在您查找它的時間點不可用。請在此處添加更多代碼,以便我們可以確定您正在使用'newArray'顯示事件列表。 – Kamrul
Kamrul-我添加了代碼,當用戶請求頁面時,它只是一個函數(getEventsList)。我絕對認爲這是一個範圍問題,但不確定如何解決它。謝謝! –
如果newArray是本地的,則在第二行前添加'var'。 –