【问题标题】:How to log response times with Action and Reducer in redux framework如何在 redux 框架中使用 Action 和 Reducer 记录响应时间
【发布时间】:2017-03-10 14:17:14
【问题描述】:

我计划记录 API 调用所用时间的时间戳。所以我正在使用以下模块。

https://www.npmjs.com/package/timer-stopwatch

我将它记录在操作文件中,但是当调用完成时,我如何在我的减速器中访问这个对象?

console.log('response_time :' + stopwatch.ms);

return {
        type:    GET_SEARCH_DATA,
        promise: request.get(API_URL + qs)
    }

那么在我的减速器中如何访问秒表对象?

export default function searchReducer(state = defaultState, action) {


     switch(action.type) {
        case GET_SEARCH_DATA:

          console.log('i want to log the response time here');

          return state;
        default:
          return state;
      }
    }

【问题讨论】:

  • 为什么不尝试实现一个中间件呢? redux.js.org/docs/advanced/Middleware.html
  • 让我看看那是什么......
  • 我有中间件和promise中间件一起应用,它有什么帮助?
  • 我认为我们可以在动作文件本身中做,我正在使用 axios,所以我可以添加一个回调并在那里记录。
  • 我建议将异步调用放在 saga 中间件中,然后您只需调度新操作 - 例如。 DATA_SEARCHED,此请求所用的时间。 github.com/yelouafi/redux-saga

标签: javascript reactjs redux isomorphic-javascript


【解决方案1】:

我不会重复这个答案,所以如果你直接看答案会更好:

Redux: Using async middlewares vs dispatching actions on success functions

我在之前的项目中也有自己的中间件来进行 API 调用,所以我认为这是处理您自己的 API 调用和添加额外操作的好解决方案。

您可以在中间件中记录时间戳,因此您只能实现一次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 2020-02-08
    • 2017-09-24
    • 1970-01-01
    • 2019-01-18
    • 2016-05-16
    • 2021-12-29
    相关资源
    最近更新 更多