banner
chenyh

chenyh

chenyh.xlog.app
github
telegram
email

redux-observable-action

灵感はredux-observableから来ていますが、使用中に非常に不便だと感じました。なぜアクションを入力してアクションを出力する必要があるのでしょうか?これは非常に不便に感じます。このストリームの末尾で他のアクションをトリガーしたくありません。そのため、自分で改造版を作りました:

サンプルコード#

const streamerMiddleware = createStreamMiddleware()

const store = createStore(reducers, applyMiddleware(streamerMiddleware))

streamerMiddleware.run(
  combineStreamers((observable$, api) =>
    observable$
      .pipe(
        filterAction(FetchTypes.FETCH_START),
        throttleTime(500),
        dispatchAction({ type: FetchTypes.SET_LOADING, payload: true }),
        delay(1000),
        mergeMap(() => from(fetcher().then((response) => response.json()))),
      )
      .subscribe({
        next: (result) => {
          if (result) {
            api.dispatch({ type: FetchTypes.FETCH_DONE, payload: result })
          }
        },
        error: (err) => {
          console.log(err)
          api.dispatch({ type: FetchTypes.FETCH_FAILED, payload: err })
        },
      })
  ),
  store.dispatch
)

github: redux-observable-another

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。