Rxjs6 RXjs-如何等待可观测A上的新值,每次可观测B说可以开始';观看';

Rxjs6 RXjs-如何等待可观测A上的新值,每次可观测B说可以开始';观看';,rxjs6,Rxjs6,我有一股可观测的电流,定期地发射 当observableB发射时,我想在那个点开始观察ObservableA,直到它发射一个值,捕捉它,然后再次停止观察。我现在再一次等待,直到我再次发射。冲洗并重复 我可以想出几种方法来做到这一点,但没有一种是非常“漂亮”的 在RXjs6中是否有一种“正确”的方法可以做到这一点?这取决于您在这里的确切用例(即如果B在a发射一次之前发射两次,您想要2 a还是1 a?顺序重要吗?),但这可能会起作用: obsB$.pipe( switchMapTo(obsA$.

我有一股可观测的电流,定期地发射

当observableB发射时,我想在那个点开始观察ObservableA,直到它发射一个值,捕捉它,然后再次停止观察。我现在再一次等待,直到我再次发射。冲洗并重复

我可以想出几种方法来做到这一点,但没有一种是非常“漂亮”的


在RXjs6中是否有一种“正确”的方法可以做到这一点?

这取决于您在这里的确切用例(即如果B在a发射一次之前发射两次,您想要2 a还是1 a?顺序重要吗?),但这可能会起作用:

obsB$.pipe(
  switchMapTo(obsA$.pipe(first()))
);
在每一次B排放时,切换到A并进行第一次排放。干净简单。如果需要,可以使用
mergeMapTo
concatMapTo
不同的行为