私はredux-storevableと一緒にredux/storeと一緒にangle2を使ってepicsを形成しています。私がしたいのは一般的なポーラーですので、ポーラーを一度書くだけです。私は約25のサービスを持っていると私はむしろアクションのどのタイプでアクションパスを持っているだろうし、それが実行されるサービスは、重複したコードを有すると文を巨大なケースを書いた場合、または:私はこれまで持ってEPICを完全に動的にする方法
コード:
私は擬似コードで何をしたいのかstartPoller: Epic<Action<void>, Action<void>> = action$ =>
action$.ofType(BankActions.DEPOSIT.POLL_DATA)
.switchMap(action =>
Observable.interval(1000)
.takeUntil(action$.ofType(BankActions.DEPOSIT.STOP_POLLING))
.mergeMap(count =>
this.bankService.getDeposit.(action.payload)
.map(payload => ({ type: BankActions.DEPOSIT.POLL_SUCCESS, payload }))
.catch(error => Observable.of({
type: BankActions.DEPOSIT.POLLING_FAILED,
payload: error
}))
)
)
:
startPoller: Epic<Action<void>, Action<void>> = action$ =>
action$.ofType(BankActions.DEPOSIT.POLL_DATA || BankActions.WITHDRAW.POLL_DATA || InvestActions.STOCK_PRICE.POLL_DATA)
.switchMap(action =>
Observable.interval(1000)
.takeUntil(action$.ofType(action.STOP_POLLING))
.mergeMap(count =>
this.bankService.getDeposit(action.payload)
.map(payload => ({ type: BankActions.DEPOSIT.POLL_SUCCESS, payload }))
.catch(error => Observable.of({
type: BankActions.DEPOSIT.POLLING_FAILED,
payload: error
}))
)
)
私はそれが私がニーズをポーリングする必要があるすべてのアクション/サービスがあろうと基本型のいくつかの種類を作るために必要がある場合があります仕事持つように推測しています'PollerService'タイプのifsか 'PollerEpic'タイプのif私はそれをフィルタリングできますか?