2017-10-11 12 views
0

以下は、私がデバッグしているReduxコードのスニペットです。私の質問は、Chrome Dev Toolsでのデバッグについてです。Chrome Devツールのデバッグ方法

問題は、コールバック.then(({ data }) => dispatch({にブレークポイント(bp)を設定することです。私はこの行にbpを設定することができますが、矢印関数のディスパッチのためにこの関数内でuser: data.results[0],にbpを設定することはできません。

私は私が何とか約束チェーンにデバッグできdataまたはdata.results[0]
を検査することができるようにBPを設定するために何ができますか?

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, 
     }, 
    }); 
    }); 
}; 
+0

理由だけではなく、.catchと同じように中括弧でdispatch' 'への呼び出しをラップ?それはあなたがブレークポイントできる別のステートメントです。はい、最終的なコードでは必ずしも必要ではありませんが、良いコードでも簡単にデバッグしましょう。あなたの人生を楽にしてくれるもので、必ずしも完全でクリーンなコードではありません。 –

+0

Chromeは[インライン関数と矢印のブレークポイントを処理できます]今すぐhttps://umaar.com/dev-tips/129-inline-breakpoints/)しかし、ソースマップを使用すると私のために働かなかった - しかし、あなたはより多くの成功を収めている可能性があります – CodingIntrigue

+0

乾杯James&Codingintrigue – Rory

答えて

-3

あなたは

debugger; 

を試してみましたか?

それは

+1

これは冗長です。 'debugger;'ステートメントを導入するには、コードブロックを導入する必要があります。あなたはとにかくブレークポイントを置くことができます... – CodingIntrigue

0

は、下記のテキストを.then機能を置き換え)=ブレークポイントのと同じだが、デバッグ後に削除することを忘れないでください:今、あなたはデバッグができるはずです

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

を。

あなたはより多くの理解のためにJavaScript promise resolving with setTimeoutを参照することができます=>および機能(){}

関連する問題