我在构建依赖于相同基础源的2个可观察对象时,遇到了一个理解事件顺序的问题。我希望您不仅可以帮我找到可行的解决方案,还能解释为什么会产生下面的结果。我的目标是observable2
在observable1
之前永远不会发出。
代码
const filters$ = new Subject();
const observable1 = filters$.pipe(
map(() => 'obersvable1')
);
const observable2 = observable1.pipe(
map(() => 'observable2')
)
observable2.subscribe((v) => console.log(v));
observable1.subscribe((v) => console.log(v));
预期结果
observable1
observable2
实际结果
observable2
observable1
问题在于当
filters$
主题发出时,observable2
首先发出信号?♂️我尝试在
observable2
上使用mergeMap
操作符,使它"依赖于" observable1
--> 但是没有任何帮助。复现: 这里提供一个带有TypeScript和RxJS的链接。
observable2
应该先接收事件?你可以切换订阅的顺序。 - martinobservable2
始终在observable1
之后发出 - 就这样。 - DauleDK