1

私はを使用して、react-reduxアプリケーションからAJAX要求を実行しています。私はPromise.reject(response)を拒否した場合、エラーがされ処理してもコンソールにバブルエラーが発生する

return callApi(callAPI).then(
    response => next(actionWith({ 
     response, 
     type: successType, 
     statusCode: 200 
    })), 
    error => error.json().then(errorObject => { 
     return next(actionWith({ 
      type: failureType, 
      statusCode: errorObject.statusCode, 
      error: errorObject.message || 'Something bad happened' 
     })); 
    }) 
); 

:上記の機能は、次のコードによって呼び出され

import fetch from 'isomorphic-fetch'; 

function callApi({ endpoint, method, body, params = {} }) { 
    let route = generateRoute(endpoint, params); 
    return fetch(route, generateFetchOptions(method, body)) 
     .then(response => { 
      if (!response.ok) { 
       return Promise.reject(response); 
      } 

      return response.json(); 
     }); 
} 

:私のAPIのミドルウェアでは、私は、外部リソースを呼び出して、次の機能を持っていますエラーハンドラによって処理されますが、何らかの理由でエラーがブラウザのコンソール(私の場合はChrome)に吹き飛ばされます。これは通常の動作です

console log

+0

?あなたが拒否している 'response'は' Error'でもありません。 – Bergi

+0

私がPromise.rejectとして返すエラー。私はそれらを処理しますが、何とかコンソールに到達することができます –

+2

あなたのコンソールのスクリーンショットを投稿してください。レスポンスオブジェクトはエラーではないため、コンソールにそのように表示するべきではありません。しかし、あなたのコードには、間違って表示されるエラーを引き起こす可能性がある他にも多くのものがあります。 – Bergi

答えて

2

とき:ここ

は何が起こっているかを示してコンソールからのスクリーンショット(api.js:34callApi方法の2行目である)である(おそらく、すべてのブラウザでは?) HTTPリクエスト中にエラーが発生します(リンクされたイメージが見つからないか、XHRが失敗したかにかかわらず)。 の場合は、を処理すると、は常にとなります。この動作を抑制する方法はありません。

参考文献:特にエラー

関連する問題