我需要在他的日历中显示用户的所有事件。我得到了所有日历的列表,然后遍历每个get事件并尝试将它们存储在一个数组中。
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( '试验'); 并且不会抛出任何错误。如果我记录它,我在控制台中看到它,但它从未添加到数组中。
可能有什么问题?
答案 0 :(得分:1)
我最简单的方法就是这样。这完全取决于你想要如何展示它。
app.get('/getEventsList/', function (req, res) {
var newArray = [];
var total;
function display() {
console.log(newArray);
}
function getEventsforOneCalendar(token,calid){
gcal(token).events.list(calid, function(err, eventsList) {
newArray.push(eventsList);
if (total == newArray.length)
display();
});
}
function getEventsList(token) {
gcal(token).calendarList.list(function (err, calendarList) {
if (err) {
//handle error
} else {
calendars = calendarList.items;
total = calendars.length
forEach(calendars, function (item, index) {
getEventsforOneCalendar(token,item.id);
}, Done);
}
});
}
getEventsList('xxxxxxxxxxxtoken');
});