2017-06-09 15 views
0

私はboolが真の間にスキップする必要のあるストリームを持っています。RxJS5 - skipスキップしながら値を保持しますが、スキップしますか?

しかし、そのブール値をfalseに戻すと、スキップしていない最後のストリーム値を適用する必要があります。

Rx.Observable 
.interval(1000) 
.skipWhile(val => true|false)<---when back to false, get last missed value? 
.subscribe(val => console.log(val)); 
+0

区間演算子または外部値から 'val'が返されますか? – Meir

+0

お返事ありがとうございます。間隔から戻った。 – Thibs

+0

だからあなたはどんな状態になるでしょうか?あなたは何を達成しようとしていますか? – Meir

答えて

0

マルチキャストを使用して開始値と残りの値を共有します。前と次の値をペアにし、開始と残りを結合するように連結します。

Rx.Observable.interval(500) 
    .multicast(new Rx.Subject(), shared => { 
     let start$ = shared 
        .pairwise() 
        .skipWhile((x)=>x[1]<5) // this is the condition to skip 
        .first()   
        .switchMap(el=>Rx.Observable.concat(Rx.Observable.of(el[0]), 
           Rx.Observable.of(el[1]))); 
     return Rx.Observable.concat(start$, shared); 
}).subscribe(x=>console.log(x)); 
関連する問題