【发布时间】:2016-12-07 22:38:35
【问题描述】:
在使用热可观察对象后,我无法从其获取值。
const partialState$ = Rx.Observable.of(1)
.publish().refCount();
const downstreamState$ = partialState$.map(v => ([v+1, v+2]));
const finalState$ = downstreamState$
// last value of partialState$ being requested -
// shouldn't matter if its completed through earlier chaining
.withLatestFrom(partialState$)
finalState$.subscribe(state => { // this does not fire
console.log('state', state);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.0.0-rc.5/Rx.js"></script>
这是小提琴:http://jsfiddle.net/j64te6jp/10/
上面的代码什么也没做 - 似乎是由于订阅的同步行为,partialState$ 直到推入 .subscribe 才被标记为准备好值
这永远不会发生,因为当downStreamState$ 向它请求最新信息时,partialState$ 尚不存在任何值。
有人可以解释为什么会发生这种情况,并提供一种从热门(已发布)可观察对象中重用相同值的好方法。谢谢。
【问题讨论】:
标签: javascript stream rxjs reactive-programming reactivex