我正在尝试使用 CalendarOptions 中的事件字段从我的数据库加载我的完整日历事件,如下所示。
calendarOptions: CalendarOptions = {
plugins: [timeGridPlugin, interactionPlugin],
initialView: 'timeGridDay',
editable: true,
selectable: true,
select: this.handleDateSelect.bind(this),
eventClick: this.handleEventClick.bind(this),
eventsSet: this.handleEvents.bind(this),
events: function(fetchInfo,successCallback){
LoadEvents(fetchInfo.startStr)
.then((returnEvents) => {
console.log(returnEvents);
successCallback(returnEvents);
})
.catch((error) => {
console.log(error);
})
}
};
我的 LoadEvents 函数能够成功记录结果,但我不能只返回数组,因为 http.get 是异步的并且数组返回为空。
async LoadEvents(date : string) {
const events : EventInput[] = [];
http.get<CalendarEvent[]>(getBaseUrl() + 'calendarevent').subscribe(result => {
result.forEach(function (val) {
console.log(result.length)
events.push({
id: val.id,
title: val.title,
start: val.date
})
})
}, error => console.error(error));
return events;
}
在返回数组之前,我尝试以多种不同的方式等待 http.get,这样我就可以使用完整的日历初始事件,但我无法让它工作。
谢谢你的帮助。