RxJS:组合observable,在源发出时发出并检索其他值的最后一个值

时间:2017-02-17 09:17:39

标签: javascript rxjs

我正在寻找一个运营商/一种用rxjs建立一个观察者的方法,但我不明白如何做到这一点。

我有两个可观测量:A和B.

我想以这种方式组合它们:每当A发出(并且只是A)时,我可以订阅A和B的最新值。

A: ----1----- 2-------------3--4----5--------6-------|-->
B: --a----------b----a----------------b--------------|-->
// something
C: ----1a-----2a------------3a-4a---5a-------6b------|-->

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您可以使用withLatestFrom完全按照您的需要进行操作

const stream1 = Rx.Observable.interval(100)
  .map(i => String.fromCharCode(97 + (i % 26)));
const stream2 = Rx.Observable.interval(250);
stream1.withLatestFrom(stream2, (x,y) => `${x}:${y}`)
  .take(20)
  .subscribe(console.log);

答案 1 :(得分:0)

根据rxmarbles:http://rxmarbles.com/#withLatestFromthe official doc我正在寻找withLatestFrom。

我试图使用它,但似乎它不会起作用。我必须以错误的方式使用它:-)也许是因为一个愚蠢的错误!