异步函数返回未定义

时间:2021-05-10 23:25:16

标签: javascript node.js async-await promise

我使用异步 async-await 函数来处理请求,在这些函数内部有处理错误的回调。

我的问题是,当我想在控制台中注册结果时,它是未定义的。

有能力的回调调用不返回值,下面是我的代码:

//dep
const { google } = require('googleapis');
const { auth } = require('google-auth-library')
const accountService = require('file json account service');

//dates
let eventStartTime = new Date();
let eventEndTime = new Date();
    eventEndTime.setDate(eventEndTime.getDate() + 6);
    eventEndTime.setMinutes(eventEndTime.getMinutes() + 45);

//authentication
const getAuth = async () => {
    let client = auth.fromJSON(accountService);
    client.scopes = ['https://www.googleapis.com/auth/calendar', 'https://www.googleapis.com/auth/calendar.events'];;
    return client
}

//list of events
const listEvents = async (auth) => {
    const calendar = google.calendar({version: 'v3', auth});
    const lista = await calendar.events.list(
        {
            calendarId:   '',
            timeMin:      eventStartTime,
            timeMax:      eventEndTime,
            maxResults:   999,
            singleEvents: true,
            orderBy:      'startTime',
            timeZone:     ''
        }, (err, res) => {
            if(err){
                //Error
                console.log(err)
            } else {
                //Complete
                return res.data        
            }
        }
    )
    //return lista
}

const initEvents = async () => {
    const auth = await getAuth()
    const res = await listEvents(auth)
    console.log(res) // prints undefined!
}
initEvents()

我想传递数据以便能够在异步外部或内部打印它们

0 个答案:

没有答案