我必须显示一个加载屏幕,直到数组在Angular中排序为止。我已经使用下面的代码来做到这一点。
this.isSorting = true;
this.array = this.array.sort((a,b) => a.totlaTime - b.totalTime);
this.isSorting = false;
但是一旦isSorting
为真,它就为假。我相信这是因为.sort
函数是异步的。我如何等待单位填充排序和数组以生成isSorting = false
?
答案 0 :(得分:0)
Array#sort根据JavaScript规范保证是同步的
请注意,所使用的排序是实现定义的(实际上在实现中有所不同),也不能保证它是稳定的。
Js排序算法可以很快完成处理条目。尝试在不将issorting设置为false的情况下编写代码,以便查看它是否正确。为了查看结果,以了解当您想要对更长的列表进行排序时的行为,这可能需要一些时间才能以这种方式修改代码
this.isSorting = true;
this.array = this.array.sort((a,b) => a.totlaTime - b.totalTime);
// This section will wait for 3 sec before settings sorting to false
setTimeout(()=>{
this.isSorting = false;
}, 3000);