angular - TypeScript - 等到 array.sort 完成
问题描述
我必须显示加载屏幕,直到在 Angular 中对数组进行排序。我已经使用以下代码来执行此操作。
this.isSorting = true;
this.array = this.array.sort((a,b) => a.totlaTime - b.totalTime);
this.isSorting = false;
但一旦成为isSorting
真的,它就变成了假的。我相信这是因为该.sort
功能是异步的。我怎样才能等待单元排序和数组被填充isSorting = false
?
解决方案
JavaScript 规范保证 Array#sort 是同步的
请注意,使用的排序是实现定义的(实际上因实现而异),也不能保证它是稳定的。
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);
推荐阅读
- python - Pandas Dataframe 一次将一行追加到 CSV
- javascript - FadeIN FadeOUT 页面转换 javascript bug
- php - PHP:避免在写入文件时为多行字符串自动添加换行符
- android - 如何使用 Gson 解析包含数组的 JSON 文件
- typo3 - 您如何调试/跟踪 Fluid 中的问题?
- excel - Excel VBA - 在所有工作表中搜索同一列,查找任何数据
- variables - 当条件满足时,我需要使用ansible替换模块替换jinja2模板中变量的内容
- python - 在 Flask 中将配置文件作为字典读取
- python-3.x - 如何在 Holoviews 中设置活动工具
- java - 为什么要在关闭 Java Executor 时保留中断状态?