2017-06-12 12 views
0

いくつかの観測値をチェーンする方法はありますか?チェーンはいつでも完了できますか?私はObservablesを3つ持っています。彼らはすべてブール値を返します。しかし、現在の観測値が偽であれば、チェーン内の次の観測値に進むだけです。観測値は、最後の観測の完了時に完了し、完了した値が偽の場合に実行する必要があります。これは可能ですか?RXJSチェーン観察可能な点はいつでも完了します

+1

どういう意味ですか? "進展"、 "チェーン"は、この文脈では混乱する可能性があります。入手したいサンプル入出力を提供する機会はありますか? – superjos

+1

リクエストをチェーンするにはhttps://stackoverflow.com/a/42659054/2398593ここで回答しました。希望するものを達成するために 'if'を追加するだけです – Maxime

答えて

1

フローを制御し、完了したら完了することができます。 zip演算子も使用します。観測可能なもの(この場合はコントロールのもの)が完成すれば、フロー全体が完了します。

let control$ = new Rx.Subject(); 

let data$ = Rx.Observable.interval() 
    .map(x => x<10?true:false) 
    .do(flag => { 
    if(flag) control$.next(true); 
    else control$.complete(); 
}); 

Rx.Observable.zip(data$.filter(x=>x), control$.startWith(true), (x,y)=>x) 
    .subscribe(x=>console.log(x)) 
関連する問題