a$.pipe(withLatestFrom(b$))
仅在b$
可以冷观察(或Behavior / ReplaySubject)时发出值。
但是,如果a$
和b$
都是热观测值怎么办?
我这种情况下观察到的结果永远不会发出
我认为解决办法是
b2$ = b$.pipe(publishReplay(1))
b2$.connect()
然后
a$.pipe(withLatestFrom(b2$))
但是对我来说看起来不对。什么是解决此问题的合适方法?
答案 0 :(得分:1)
a$.pipe(withLatestFrom(b$))
将在b$
首先发出而a$
其次发出时发出。
如果希望结果观测对象在a$
尚未发射的同时就发射b$
,则可以使用startWith
向b$
添加初始值
a$.pipe(
withLatestFrom(b$.pipe(startWith(null)))
)