我有一个可观察对象和另一个可观察对象,它提供了一个更改密钥 。 我想构建一个观察值,基于该键在对象中的可观察值之间切换。基于可观察性,从可观察对象中选择可观察对象
例子:
// Choose randomly between "up" or "down" every second
const upOrDown$ = Rx.Observable.interval(1000).publish().refCount()
.map(() => Math.random() < 0.5 ? "up" : "down")
const myMap =
{ "up" : Rx.Observable.interval(100).publish().refCount().map("foo")
, "down" : Rx.Observable.interval(100).publish().refCount().map("bar")
}
upOrDown$.flatMap(ud => myMap[ud]).subscribe(x => console.log(x));
不幸的是,打算在不工作。 我预计在一秒的时间内,要么foo
要么bar
被发射,而不是两者。
任何想法?