Насколько я вижу, switchMap должен работать как есть, хотя вы, возможно, захотите поместить туда некоторую обработку ошибок.
Чтобы увеличить значение на 10, просто поместите значение в магазин и запустите действие, которое заставит редукторы увеличить его на 10 для следующего раунда.
.pipe(
debounceTime(300),
distinctUntilChanged(),
// get the value from the store using an ngrx selector
withLatestFrom(this.store.pipe(select(selectValue))),
switchMap(([searchTerm, limit]) => {
// essential to catchError else an HTTP error response will disable this
return this.myservice.search(searchTerm, limit).pipe(
catchError(() => {
return of('an error string which will be passed down the pipe on an error')
})
)
}),
tap(() => this.store.dispatch(new IncrementValueByTenAction()))
)
Кроме того, используйте множество операторов tap для записи значений, передаваемых по каналу.