У меня есть два наблюдаемых объекта, один из которых представляет собой наблюдаемые данные, которые содержат данные, и у меня есть один наблюдаемый шкафчик. Когда значение шкафчика имеет значение «блокировка», наблюдаемые данные должны отправлять свои данные своим подписчикам. Когда мы разблокируем наблюдаемые данные, они должны отправить последнее следующее значение подписчикам.
Я включил диаграмму, которая показывает, что я хочу. Когда источник B имеет значение L (заблокирован), он должен хранить значение, когда источник B имеет значение U, он должен передавать значение A и также возвращать последнее известное значение при изменении.
Надеюсь, что кто-то может помочь мне с поиском подходящего оператора для этого.
Похоже, вы могли бы сделать это с помощью combineLatest()
:
combineLatest([lock$, data$])
.pipe(
switchMap(([lock, data]) => {
if (lock === 'L') {
return EMPTY;
}
// When `lock` changes to unlocked then `data` will already have the most recent value from `data$`.
return of(data);
}),
),