在 RxJS 中合并两个主题

Luk*_*sen 3 javascript rxjs typescript angular

在 RxJS 中,我怎样才能实现这一点:我有两个主题。我想要一个以这种方式组合它们的可观察量:当两者都发出值时,发出它们的最新值。然后,两者都需要至少再次发射一次,然后发射它们最新的发射值,等等。

两个科目:

1 ---------- 2 ----- 3 -- 4 ---------------- 5 ------ 6 -----------------

------- a ------------------ b ------ c --------------------- d --------
Run Code Online (Sandbox Code Playgroud)

可观察的目标:

------- 1a ----------------- 2b ----- 3c ------------------- 4d -------
Run Code Online (Sandbox Code Playgroud)

Nic*_*wer 5

这可以通过以下函数完成zip

import { zip } from 'rxjs'

zip(subject1$, subject2$)
  .subscribe(([val1, val2]) => {
    console.log(`${val1}${val2}`);
  });
Run Code Online (Sandbox Code Playgroud)

术语“zip”来自拉链。类比是,拉链将拉链每一侧的连续齿配对,因此该zip函数也会将可观察到的连续值配对。

https://rxjs.dev/api/index/function/zip