Я пытаюсь выяснить, как использовать сканирование для получения нового состояния, когда моя входная наблюдаемая испускает новое значение, но я не могу заставить его работать.
Я хочу вывестиnew State каждый раз, когда input $ observable испускает новое значение, но оно должно быть получено из текущего значения состояния $.
Кто-нибудь может подсказать, как я могу это исправить?У меня такое ощущение, что я совершенно неверно понял: -)
Мой код выглядит примерно так:
const stateReducer = (state$: Observable<State>, input$: Observable<Input>) => {
state$ = state$.pipe( startWith(DEFAULT_STATE) );
const foo$: Observable<State> = input$.pipe(
filter((input) => isFoo(input)),
withLatestFrom(state$),
scan((acc, ([input, state]) => {
//returns derived state
});
const bar$: Observable<State> = input$.pipe(
filter((input) => isBar(input)),
withLatestFrom(state$),
scan((acc, ([input, state]) => {
//returns derived state
});
return merge(
foo$,
bar$
);
}