下面的代码是小编在,在项目中遇到的一个问题,然后通过定时任务的方式巧妙的给解决了。
问题:我们使用前后端分离的模式,后端通知把一个树的所有节点一下子反馈到我的前端,数据量大概有1万左右,我们独立测试时候:从后端取到数据需要12s,我构建树要2s。我们通过axios实现对后台的数据请求,由于测试发现axios是异步的,所有后台数据没有请求完,我就去设置树的默认节点,导致最后的结果是,树的默认节点绑定不了。
**解决方法:**我通过定时任务1秒去查看一下数据是返回回来,数据返回后再去设置默认节点。
下面是我实现的代码:
timedCount () {
//这个赋值很重要否则,方法会出错。
let _this=this
//判断你要结束执行的定时任务的条件
if (this.sc.length > 0) {
//自定义方法执行
this.twoLevelSceneBind()
//结束定时任务
return
}
//1秒钟调用一次
setTimeout(() => {
_this.timedCount()
}, 1000)
}