RXjs - 如何等待可观察 A 的新值,每次可观察 B 都说可以开始 'watching'
RXjs - How to wait for new value on observable A, every time observable B says its okay to start 'watching'
我有一个 observableA 流,定期发射。
当 observableB 发出时,我想从那时开始观察 ObservableA,直到它发出一个值,捕获它然后再次停止观察。现在,我将再次等待,直到 observableB 再次发出。冲洗并重复。
我可以想出几个方法来做到这一点,但是 none 其中非常 'pretty'。
在 RXjs6 中有 'correct' 方法吗?
这在某种程度上取决于您的确切用例(即如果 B 在 A 发出一次之前发出两次,您想要 2 个 A 还是 1 个 A?顺序重要吗?),但这可能有效:
obsB$.pipe(
switchMapTo(obsA$.pipe(first()))
);
就在每次 B 发射时,切换到 A 并进行第一次发射。干净简单。如果需要,可以使用 mergeMapTo
或 concatMapTo
不同的行为。
我有一个 observableA 流,定期发射。
当 observableB 发出时,我想从那时开始观察 ObservableA,直到它发出一个值,捕获它然后再次停止观察。现在,我将再次等待,直到 observableB 再次发出。冲洗并重复。
我可以想出几个方法来做到这一点,但是 none 其中非常 'pretty'。
在 RXjs6 中有 'correct' 方法吗?
这在某种程度上取决于您的确切用例(即如果 B 在 A 发出一次之前发出两次,您想要 2 个 A 还是 1 个 A?顺序重要吗?),但这可能有效:
obsB$.pipe(
switchMapTo(obsA$.pipe(first()))
);
就在每次 B 发射时,切换到 A 并进行第一次发射。干净简单。如果需要,可以使用 mergeMapTo
或 concatMapTo
不同的行为。