Chrome Dev Tools中的调试技术

时间:2017-10-11 11:58:06

标签: javascript google-chrome ecmascript-6 promise

以下是我调试的Redux代码片段,真的没什么特别的。我的问题是在Chrome开发工具中调试它。

问题是在回调.then(({ data }) => dispatch({中设置断点(bp)。我可以在这一行上设置一个bp,但由于箭头函数调度,我无法在此函数中的user: data.results[0],上设置bp。

如何设置bp以便我可以检查datadata.results[0]
我可以以某种方式调试到承诺链吗?

export const login = (username, password) => (dispatch) => {
  return dispatch({
    type: LOGIN,
    payload: {
      username,
      password,
    }
  })
  .then(({ data }) => dispatch({
    type: LOGIN_SUCCESS,
    payload: {
      user: data.results[0],
    },
  }))
  .catch((error) => {
    dispatch({
      type: LOGIN_FAIL,
      payload: {
        error: error.message,
      },
    });
  });
};

2 个答案:

答案 0 :(得分:0)

用以下文字替换.then函数:

  .then(function({ data }) { 
    dispatch({
        type: LOGIN_SUCCESS,
        payload: {
          user: data.results[0],
        },
      })
    })

现在你应该可以调试了。

您可以参考JavaScript promise resolving with setTimeout了解=>和function(){}

答案 1 :(得分:-3)

你试过吗

debugger;

它与断点相同,但不要忘记在调试后删除=)