在 Rx.js 中过滤时如何将一个 observable 分成 2 个?
How to split an observable into 2 when filtering in Rx.js?
我想在过滤时将一个 Rx.js observable 拆分为另外两个 observable,这样一个 observable 包含过滤后的结果,另一个包含其他所有内容。
是否可以在不创建两个单独过滤器的情况下拆分它们?
而不是这个:
const observable$ = Rx.Observable.of(1, 2, 3, 4)
observable$.filter(isOdd)
observable$.filter(isEven)
我正在寻找这样的东西:
const [isOdd$, isNotOdd$] = observable$.split(isOdd)
我相信你需要的是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 找到更多信息。
我想在过滤时将一个 Rx.js observable 拆分为另外两个 observable,这样一个 observable 包含过滤后的结果,另一个包含其他所有内容。
是否可以在不创建两个单独过滤器的情况下拆分它们?
而不是这个:
const observable$ = Rx.Observable.of(1, 2, 3, 4)
observable$.filter(isOdd)
observable$.filter(isEven)
我正在寻找这样的东西:
const [isOdd$, isNotOdd$] = observable$.split(isOdd)
我相信你需要的是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 找到更多信息。