)
我创建了一个简单的数字数组,并使用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(chunk => {
console.log('chunk ', chunk);
});
在创建这个示例应用程序之后,我试图将它与一些大的对象元素数组一起带到我的应用程序中,以处理UI和后端循环。但当我试图使用它的数组可以观察到,但它不是块数组。它传递该方法而不进行分块处理。我也无法调试它…在RxJS中这是如何实现的?
我建议您仔细查看所提供的操作符。很多你想要创建的功能已经可用了。
要延迟数组元素的释放,可以使用:.flatMap(val => Rx.Observable.just(val).delay(50)/*ms*/)
对于分块数组,您可以使用计数(如果定时不是问题).bufferWithCount(50)/*elements per chunk */
,定时.bufferWithTime(250/*ms*/)
或两者结合(.bufferWithTimeOrCount(250 /*ms*/, 50 /*elements */)