Rxjs类似zip的运算符,仅在特定顺序可观察到的时候返回

问题描述 投票:0回答:1

假设我有两个Observables A和B,我希望将它们组合起来产生这种行为:只有当A已经被触发时,A才会触发订阅组合。它与zip不同,因为如果A已经被触发然后B发射,我不想要任何返回。换句话说:忽略A直到B发射然后返回下一个A,然后忽略任何其他A直到B发射......等等

rxjs rxjs6 rxjs-pipeable-operators
1个回答
0
投票

我相信你需要withLatestFrom运营商:

import { withLatestFrom, map } from 'rxjs/operators';
import { interval } from 'rxjs';

const obsA = interval(2000);
const obsB = interval(1000);
const resultingObs = obsB.pipe(
  withLatestFrom(obsA),
  map(([bValue, aValue]) => {
    return aValue
  })
);

// This should emit values from obsA only when obsB has been fired.
const subscribe = resultingObs .subscribe(val => console.log(val));
© www.soinside.com 2019 - 2024. All rights reserved.