TypeScript-等待array.sort完成

时间:2020-07-22 11:59:01

标签: angular typescript

我必须显示一个加载屏幕,直到数组在Angular中排序为止。我已经使用下面的代码来做到这一点。

this.isSorting = true;
this.array = this.array.sort((a,b) => a.totlaTime - b.totalTime);
this.isSorting = false;

但是一旦isSorting为真,它就为假。我相信这是因为.sort函数是异步的。我如何等待单位填充排序和数组以生成isSorting = false

1 个答案:

答案 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);