gpt4 book ai didi

javascript - Zip 可重放的 RxJS 可观察对象

转载 作者:行者123 更新时间:2023-11-30 11:42:06 24 4
gpt4 key购买 nike

我想以与 zip 类似的方式组合几个保存最后一个值的可重放不完整可观察对象(在本例中为 BehaviorSubject),但要生成结果当任何源可观察对象发出时,可观察对象发出一个值。

这是 a fiddle :

const foo$ = new Rx.BehaviorSubject('foo');
const bar$ = new Rx.BehaviorSubject('bar');

setTimeout(() => foo$.next('foo 1'), 1000)
setTimeout(() => bar$.next('bar 1'), 2000)

const foobar$ = Rx.Observable.zip(foo$, bar$);

foobar$.subscribe(([foo, bar]) => console.log({ foo, bar }));

由于 zip 运算符的工作方式,上面的代码将输出:

{foo: "foo", bar: "bar"}

{foo: "foo 1", bar: "bar 1"}

虽然我希望它是

{foo: "foo", bar: "bar"}

{foo: "foo 1", bar: "bar"}

{foo: "foo 1", bar: "bar 1"}

如何做到这一点?

最佳答案

使用 combineLatest()运算符(operator):

const foobar$ = Rx.Observable.combineLatest(foo$, bar$);

您更新的演示:https://jsfiddle.net/d1wo1usx/

关于javascript - Zip 可重放的 RxJS 可观察对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42248209/

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