我正在尝试找出如何在我的输入observable发出新值时使用scan来导出新状态,但是我似乎无法使其正常工作。
我想每次输入的$ observable发出一个新值时都输出一个新的State,但是它应该从state $的当前值中得出。
谁能建议我该如何解决?我觉得我完全错了:-)
我的代码如下:
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$
);
}