2016-11-18 3 views
-2

erstellt I einfacher Zahl Array und verwenden rxjs UI und die Back-End-Schleife verwalten die folgende ist mein Code:Rxjs mit großer bitteren Elementanordnung backend Schleife mit beobachtbaren

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); 
    }); 

Nachdem diese Probe Anwendung erstellen ich versuchte um dies zu meiner Anwendung mit einem großen abject-Elementarray zu bringen, um die UI und die Backend-Schleife zu behandeln. aber wenn ich versuche, es zu benutzen, kann das Array beobachtbar sein, aber es teilt das Array nicht auf. es besteht die Methode ohne Chunking. Ich kann es auch nicht debuggen.

Wie wird das in RxJS erreicht?

Antwort

1

Ich würde vorschlagen, Sie haben einen guten Blick auf die mitgelieferten Betreiber. Viele der Funktionen, die Sie erstellen möchten, sind bereits verfügbar.

Für von Elementen aus Ihrem Array verzögern Emission können Sie: .flatMap(val => Rx.Observable.just(val).delay(50)/*ms*/)

Für Chunking Array Sie Zahl verwenden können (wenn Timing ist kein Problem) .bufferWithCount(50)/*elements per chunk */, Timing .bufferWithTime(250/*ms*/) oder beides kombiniert (.bufferWithTimeOrCount(250 /*ms*/, 50 /*elements */)

Verwandte Themen