【发布时间】:2021-10-04 04:16:09
【问题描述】:
我正在我的 php/js 应用程序中实现 Toast Ui 日历,并且在 javascript 执行流程中,程序遇到了这个函数:
function setSchedules() {
cal.clear();
generateSchedule();
cal.createSchedules(ScheduleList);
refreshScheduleVisibility();
}
当我刷新页面以可视化通过 axios 和 php 函数从 db 检索的事件时,日历为空,然后如果选择月份视图或返回一周并返回当前一周,则呈现事件。
问题接缝存在于函数 generateScedule() 中,该函数在 schedules.js 文件中声明,并声明并实现 ScheduleList 数组以传递给 createSchedules 函数,请遵循以下代码:
var ScheduleList = [];
function generateSchedule() {
axios({
method: 'post',
url: 'path-to-data',
})
.then(function (response) {
ScheduleList = [];
let data = response.data;
for(let key in data){
ScheduleList.push(data[key]);
};
})
.catch(function (error) {
console.log(error);
});
return ScheduleList; //with or without this return the result doesn't change
}
这就像如果数组 ScheduleList 一开始返回空(没有等待),而函数仍在执行它,console.log 在函数的各个部分确认它。
如果我用粘贴的 json 数据手动完成数组,一切都会立即返回。
我知道这可能与 javascript 堆栈等有关。
任何帮助将不胜感激。
提前非常感谢!
【问题讨论】:
标签: javascript asynchronous async-await promise axios