Я использую API Календаря Google, который работает как положено. Но у меня есть проблема с методами asyn c внутри.
Итак, у меня есть следующий маршрут запроса, чтобы получить все события от моего указанного c пользователя:
router.get('/api/user/calendar/listEvents', async (req, res) => {
try {
const token = "123456789"
var oAuth = authorizationHelper(token)
var events = await listEvents(oAuth, req.body.date)
res.status(200).send(events)
} catch (e) {
res.status(400).send("Error Bad Request")
console.log(e)
}
})
И мой метод listEvents:
async function listEvents(auth, date) {
var events;
const calendar = google.calendar({ version: 'v3', auth });
const eventsA = calendar.events.list({
calendarId: 'primary',
timeMin: date,
maxResults: 1,
singleEvents: true,
orderBy: 'startTime',
}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
events = res.data.items;
return events
});
}
Метод listEvents работает нормально, но возврат этой функции всегда неопределен, потому что он не ждет ответа, который я получаю от Calendar API.
Кто-нибудь знает решение этой проблемы?