在RxJS v5中是否有与RxJS v4 case运算符相同的功能?

时间:2018-04-05 14:24:57

标签: rxjs5

我在这里找到了旧case运算符的文档:https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/case.md

迁移指南中未列出: https://github.com/ReactiveX/rxjs/blob/stable/MIGRATION.md

是否有一些受支持的运算符组合可以提供相同的功能?

1 个答案:

答案 0 :(得分:1)

RxJS v4 Rx.Observable.case(selector, sources, [elseSource|scheduler]),给出的例子是

var sources = {
    'foo': Rx.Observable.return(42),
    'bar': Rx.Observable.return(56)
};

var defaultSource = Rx.Observable.empty();

var source = Rx.Observable.case(
    function () {
        return 'foo';
    },
    sources,
    defaultSource);

我想你可以在RxJS v5中做到这一点

var sources = {
    'foo': Rx.Observable.return(42),
    'bar': Rx.Observable.return(56)
};

var defaultSource = Rx.Observable.empty();

var source = Rx.Observable.of('foo')
  .mergeMap(srcName => {
    const src = sources[srcName];
    return src || defaultSource;
  })

有兴趣知道您正在使用/想要使用此运算符。