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