Node.js 如何用回调函数调用递归函数?

Node.js 如何用回调函数调用递归函数?,node.js,recursion,Node.js,Recursion,当使用callback函数递归调用函数时,它会抛出一个错误,即 错误:已调用回调。 at/home/clsah/projects/LMS/node_modules/async/dist/async.js:837:32 这是我的密码:- function getEventList(oauth2Client, user, callback) { var calendar = google.calendar('v3'); calendar.events.list({

当使用
callback
函数递归调用函数时,它会抛出一个错误,即

错误:已调用回调。 at/home/clsah/projects/LMS/node_modules/async/dist/async.js:837:32

这是我的密码:-

function getEventList(oauth2Client, user, callback) {
    var calendar = google.calendar('v3');
    calendar.events.list({
        auth: oauth2Client,
        calendarId: 'primary',
        timeMin: (new Date()).toISOString(),
        maxResults: 50,
        singleEvents: true,
        orderBy: 'startTime'
    }, function(err, response) {
        if (err) {
            generateNewToken(oauth2Client, function(err, oauth2Client) {
                if (err)
                    return callback(err)
                getEventList(oauth2Client, user, callback); //here is problem
            })
        } else {
            var events = response.items || [];
            if (events.length == 0) {
                console.log('No upcoming events found.');
            } else {
                for (var i = 0; i < events.length; i++) {
                    events[i].userId = user._id;
                }
            }
            console.log('getEventList', events)
            callback(null, events);
        }

    });
}
函数getEventList(oauth2Client、用户、回调){ var calendar=google.calendar('v3'); calendar.events.list({ 作者:oauth2Client, calendarId:'主', timeMin:(新日期()).toISOString(), 最大结果:50, 单身事件:对, 订购人:“startTime” },函数(错误,响应){ 如果(错误){ generateNewToken(oauth2Client,函数(err,oauth2Client){ 如果(错误) 返回回调(err) getEventList(oauth2Client、用户、回调);//问题出在这里 }) }否则{ var events=response.items | |[]; 如果(events.length==0){ log('未找到即将发生的事件'); }否则{ 对于(var i=0;i