gpt4 book ai didi

javascript - 如何使一个可观察对象依赖于另一个可观察对象

转载 作者:数据小太阳 更新时间:2023-10-29 05:24:17 27 4
gpt4 key购买 nike

在构建依赖于相同底层源的 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$ subject 发出时,observable2 先发出? 🤷🏻‍♂️

我曾尝试在 observable2 上使用 mergeMap 运算符,使其“依赖”于 observable1 --> 但无济于事全部。

复制

这是一个link到使用 typescript 和 rxjs 的 stackblitz。

最佳答案

在将它们传递给 observable2 之前,您可以使 observable1 的发射异步:

const observable2 = observable1.pipe(
observeOn(asyncScheduler),
map(() => 'observable2')
);

您更新的演示:https://stackblitz.com/edit/rxjs-xqcyqk?file=index.ts

关于javascript - 如何使一个可观察对象依赖于另一个可观察对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58096757/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com