Zx-подобный оператор Rxjs, который возвращает только когда наблюдаемые пожары в определенном порядке - PullRequest
0 голосов
/ 07 марта 2019

Допустим, у меня есть две наблюдаемые A и B, и я хочу объединить их, чтобы создать такое поведение: комбинация подписки возвращается, только если A срабатывает, когда B уже запущен. Это отличается от почтового индекса, потому что я не хочу никакого возвращения, если A уже был уволен, а затем B выстрелил. Другими словами: игнорирует A, пока B не сработает, затем вернется к следующему A, затем проигнорирует любой другой A, пока B не сработает ... так что

1 Ответ

0 голосов
/ 07 марта 2019

Полагаю, вам нужен 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));
...