Rxjs: условный буфер в любом случае работает как карта
Я хочу добиться некоторой условной буферизации. Если условный истинный буфер в любом случае работает как простая карта.
Я только мог решить это с 2 наблюдаемыми:
@Effect()
first$: Observable<Action> = this.actions
.ofType(ACTION_TO_CATCH)
.withLatestFrom(this.store.select(parameterOnPending))
.filter(([action, pending]: [Action, boolean]) => !pending)
.map(([action, pending]: [Action, boolean]) => new actionSuccess(action.payload))
@Effect()
second$: Observable<Action> = this.actions
.ofType(ACTION_TO_CATCH)
.withLatestFrom(this.store.select(parameterOnPending))
.filter(([action, pending]: [Action, boolean]) => pending)
.map(([action, pending]: [Action, boolean]) => action.payload)
// this is the action which change back the parameterOnPending parameter
.buffer(this.actions.ofType(ACTION_UNTIL_BUFFER_NEED))
.flatMap((payloads: Array<any>) => payloads)
.map((payload: any) => new actionSuccess(payload));
Есть ли более элегантный способ сделать это? Или я могу добиться того же только с одной наблюдаемой? Спасибо за помощь!