Javascript RxJS:使用时间间隔将一个大数组分块,并使用它进行渲染

Javascript RxJS:使用时间间隔将一个大数组分块,并使用它进行渲染,javascript,rxjs,Javascript,Rxjs,有一个大数组,比如说长度为100。每个数组包含50多个项目的子数组。(一种二维阵列) 一次渲染所有内容非常耗时,可能需要更多的浏览器内存。决定继续将数据集分块为5并进行渲染。也就是说,对数据块进行渲染,然后获取下一个块并进行渲染。基于1秒的间隔 这是如何在RxJS中实现的 尝试: Rx.Observable.range(0, 10).map(i => data[i]).subscribe(...) 这需要前10条记录。因此,我编写了一个递归函数,将10改为迭代器+10,但是渲染数组项需要

有一个大数组,比如说长度为100。每个数组包含50多个项目的子数组。(一种二维阵列)

一次渲染所有内容非常耗时,可能需要更多的浏览器内存。决定继续将数据集分块为5并进行渲染。也就是说,对数据块进行渲染,然后获取下一个块并进行渲染。基于1秒的间隔

这是如何在RxJS中实现的

尝试:

Rx.Observable.range(0, 10).map(i => data[i]).subscribe(...)
这需要前10条记录。因此,我编写了一个递归函数,将10改为迭代器+10,但是渲染数组项需要很多时间。尝试使用:

Rx.Observable.interval(0, 500).take(data.length).map(i => data[i]).subscribe(...)

这个很好用。但是,每500毫秒的时间空间需要1次渲染。我想先去俱乐部,再去俱乐部。按10分块使用500毫秒渲染并获取下一个分块。

您可以尝试使用
缓冲区来分块数组。这假定
进程
功能是同步的

Rx.Observable.from(bigArray)
  .bufferWithCount(chunkSize)
  .do(process(chunk))

也就是说,如果
进程
函数是同步的,那么为什么要使用Rxjs呢?将数组拆分为块(请参阅如何操作),并对每个块执行
过程
函数。它可能更快,占用更少的内存。

在这种情况下,什么是块?我必须手动将bigArray拆分为chunkSize吗?我不明白,对不起!查看
bufferWithCount
的文档。它返回一个可观察值,其值是大小为
chunkSize
的数组。