Javascript Rxjs具有大的可观察元素阵列后端环路
我创建了简单的数字数组,并使用rxjs管理UI和后端循环。以下是我的代码:Javascript Rxjs具有大的可观察元素阵列后端环路,javascript,arrays,rxjs,observable,Javascript,Arrays,Rxjs,Observable,我创建了简单的数字数组,并使用rxjs管理UI和后端循环。以下是我的代码: var array100 = new Array(9703) .fill('x') .map((v, i) => i); Rx.Observable.from(array100) .delayWhen(function(v){return Rx.Observable.timer(v*50)}) .buffer(Rx.Observable.timer(250, 250)) .subscribe
var array100 = new Array(9703)
.fill('x')
.map((v, i) => i);
Rx.Observable.from(array100)
.delayWhen(function(v){return Rx.Observable.timer(v*50)})
.buffer(Rx.Observable.timer(250, 250))
.subscribe(chunk => {
console.log('chunk ', chunk);
});
在创建了这个示例应用程序之后,我尝试将它应用到我的应用程序中,使用一些大的、可怜的元素数组来处理UI和后端循环。但是当我尝试使用它时,数组是可以观察到的,但它不是对数组进行分块。它不分块地通过方法。我也无法调试它
RxJS是如何实现这一点的?我建议您仔细查看提供的操作符。您尝试创建的许多功能已经可用 要延迟阵列中元素的发射,可以使用:
.flatMap(val=>Rx.Observable.just(val).delay(50)/*ms*/)
对于数组的分块,可以使用count(如果计时不是问题).bufferWithCount(50)/*元素/分块*/
,计时.bufferWithTime(250/*ms*/)
或两者的组合(.bufferWithTimeOrCount(250/*ms*/,50/*元素*/)