【问题标题】:How to split an observable into 2 when filtering in Rx.js?在 Rxjs 中过滤时如何将一个 observable 拆分为 2?
【发布时间】:2017-09-23 07:09:18
【问题描述】:

我想在过滤时将一个 Rx.js 可观察对象拆分为另外两个可观察对象,这样一个可观察对象包含过滤后的结果,另一个包含其他所有内容。

是否可以在不创建两个单独的过滤器的情况下拆分它们?

而不是这个:

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

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

我正在寻找这样的东西:

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

【问题讨论】:

    标签: javascript filter rxjs observable rxjs5


    【解决方案1】:

    我相信你需要的是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

    【讨论】:

    • 谢谢!我很惊讶文档使用的示例与我期望的完全相同的语法几乎相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多