2017-09-23 3 views
0

Rx.js観測値を他の2つの観測値に分割して、1つの観測値にフィルタリングされた結果が含まれ、もう1つの観測値に他のすべてが含まれるようにフィルタリングする必要があります。Rx.jsでフィルタリングするときにobservableを2に分割する方法は?

2つのフィルタを別々に作成せずに分割することはできますか?これに代えて

const observable$ = Rx.Observable.of(1, 2, 3, 4) 

observable$.filter(isOdd) 
observable$.filter(isEven) 

私はこのような何かを探しています:

const [isOdd$, isNotOdd$] = observable$.split(isOdd) 

答えて

3

私はあなたがpartitionで必要なものと考えています。

const source = Rx.Observable.from([1,2,3,4,5,6]); 

//first value is true, second false 
const [evens, odds] = source.partition(val => val % 2 === 0); 

evens.subscribe(n => console.log(n)); 
// 2, 4 

さらに詳しい情報はlearnrxjs.ioにあります。

+0

ありがとうございます!私は、ドキュメントが私が期待しているのとまったく同じ構文でほぼ同じだった例を使用したことに驚いています。 – Sawtaytoes

関連する問題