【发布时间】:2020-01-25 13:11:09
【问题描述】:
在构建 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 --> 但根本没有帮助。
复制
这是一个link 与 typescript 和 rxjs 的堆栈闪电战。
【问题讨论】:
-
基于什么逻辑
observable2应该先接收事件?您可以切换订阅顺序。 -
我只是想保证
observable2总是在observable1之后发出 - 就是这样。 -
在这种情况下使用concatMap
-
好问题,答案很好。
标签: javascript typescript rxjs