Dau*_*eDK 6 javascript rxjs typescript
在构建依赖于相同基础源的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));
Run Code Online (Sandbox Code Playgroud)
预期结果
observable1
observable2
Run Code Online (Sandbox Code Playgroud)
实际结果
observable2
observable1
Run Code Online (Sandbox Code Playgroud)
问题是当filters$主体发射时,observable2首先发射????
我尝试在mergeMap上使用运算符observable2,以使其“依赖” observable1->,但完全没有帮助。
复制
这是使用typescript和rxjs进行stackblitz 的链接。
您可以observable1在将其传递给之前进行异步排放observable2:
const observable2 = observable1.pipe(
observeOn(asyncScheduler),
map(() => 'observable2')
);
Run Code Online (Sandbox Code Playgroud)
您更新的演示:https://stackblitz.com/edit/rxjs-xqcyqk?file =index.ts