Я пытаюсь загрузить события из API календаря Google, которые я получаю с помощью gapi.client.request, проблема в том, что я не могу понять, как правильно использовать async / await. Мои события загружаются после моих презентационных компонентов. Я использовал async await раньше, и он работал правильно с fetch и другими API. Есть ли другой способ подождать google.thenable объекта. Так как это обещание, как я и думал, с ним будет легче справиться, как с обещаниями, которые я получал раньше. Я совершенно потерян здесь, любая помощь будет оценена.
const [events, setEvents] = useState([]);
useEffect(() => {
getEvents();
});
async function get(){
await getEvents();
}
function getEvents(){
init()
.then(() => {
return gapi.client.request({
'path': `https://www.googleapis.com/calendar/v3/calendars/${CALENDAR_ID}/events`,
})
})
.then((res) => {
const allEvents = res.result.items;
setEvents(sortedEvents);
}, (reason) => {
console.log(reason);
});
}
События не загружаются до компонентов, поэтому их не ожидают должным образом. Я хотел бы, чтобы мои события загружались асинхронно, чтобы они отображались одновременно с другими компонентами представления.