如何使用redux-observable将多个动作发送到存储?

时间:2017-08-22 20:22:01

标签: javascript ajax redux rxjs react-redux

我想做的是:

  1. Capture' PRODUCTS_DISPLAY'减速器中的动作
  2. 发货' ON_PRODUCTS_FETCHNG'动作
  3. 通过AJAX加载数据
  4. 如果回复是正确的,那就是DONE_PRODUCTS_FETCHING' DONE_PRODUCTS_FETCHING'来自AJAX响应的有效负载
  5. 如果发生AJAX错误发送' ON_PRODUCTS_FETCH_ERR'
  6. 这就是我已经"编码":

    const fetchProductsEpic = (action$, $store) =>
    action$.ofType(PRODUCTS_DISPLAY)
        .do($store.dispatch({ type: 'ON_PRODUCTS_FETCHNG' }))
        .mergeMap(action => ajax.getJSON(`http://localhost:9000/products`)
            .map(response => productsFetchedAction(response))
            .catch(err => {
                $store.dispatch({ type: 'ON_PRODUCTS_FETCH_ERR', payload: err })
            })
        );
    

    而且我觉得我对这段代码很不满意。我不认为打电话

    .do($store.dispatch({ type: 'ON_PRODUCTS_FETCHNG' }))
    

    手动是一种很好的做法,但我没有看到任何其他方法来做到这一点。

    有没有办法更合理地编写这部史诗,并采用最佳实践?

0 个答案:

没有答案