RXJS扫描-withLatest

时间:2019-02-28 08:54:32

标签: javascript typescript rxjs

我正在尝试找出如何在我的输入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$
   );
}

0 个答案:

没有答案