【发布时间】:2018-06-20 10:51:09
【问题描述】:
我正在尝试过滤一个巨大的数组。不幸的是,数组太大以至于 UI 冻结。这就是为什么我尝试分块执行过滤,中间有一个超时,以便 UI 可以加载。
出于演示目的,我采用“巨大”数组[1,2,3,4,5] 并返回可被二整除的元素。
我试过了,但是不行:
[1,2,3,4,5].filter(async (x) => {
// wait 1 sec after each element to filter
await new Promise(resolve => setTimeout(resolve, 1000));
return x % 2 === 0;
});
任何想法如何过滤大数组以使 UI 不会冻结?
【问题讨论】:
-
你应该看看Web workers
-
尝试将您的数组传递给将为您过滤数组的外部 JSON API 服务;)
-
也许可以试试这样的jsfiddle.net/mb8qnt1L/19
标签: javascript arrays filter ecmascript-6