2017-11-27 15 views
0

私は以下のようにサーバーからアイテムを取得するために動作するAPIを持っています。私はこのデータを使用するためにReactを使用しています。今、私は5__で始まるすべてのサーバーエラーをキャッチし、 "インターネットとの接続なし"などのメッセージを表示したいと思います。React、JavaScriptでキャッチ504(ゲートウェイタイムアウト)エラーが発生しました

export const GetItems = (operand, searchValue) => { 
     const trimmedValue = searchValue.trim(); 
     let combinedResults; 
     // make 2 API calls to search on both item_name and code; 
     // then combine them; 
     // there is no API method to do this, that I could find 
     return getItemsByName(operand, trimmedValue) 
     .then(result => (
     (combinedResults = [].concat(result)) 
    )) 
     .then(() => getItemsByCode(operand, trimmedValue)) 
     .then(result => (
     (combinedResults = combinedResults.concat(result)) 
    )); 
    }; 

現在、コンソールに接続に問題がないかどうかを確認する必要があります。 @Daneは、それはちょうどURLを構築するメソッドを呼び出します

const getItemsByCode = (operand, searchValue) => (
    FetchToJson(BuildCodeSearchUrl(operand, searchValue)) 
); 

を要求されるように更新

504 Gateway Timeout Error


。接続があれば、すべてがうまくいき、応答が得られると考えることができます。

+0

はあなたにも 'getItemsByCode'ためのコードを追加していただけますか? – Dane

+0

ワットhttpライブラリを使用していますか? – Panther

答えて

1

使用catch()

return getItemsByName(operand, trimmedValue) 
     .then(result => (
     (combinedResults = [].concat(result)) 
    )) 
     .then(() => getItemsByCode(operand, trimmedValue)) 
     .then(result => (
     (combinedResults = combinedResults.concat(result)) 
    )) 
     .catch((error) => { 
     if (error.response) { // if there is response, it means its not a 50x, but 4xx 

     } else { // gets activated on 50x errors, since no response from server 
      // do whatever you want here :) 
     }    
     }); 
+0

ありがとう、エラーメッセージの代わりにエラーコードを取得する方法はありますか?私が言及したように、私はステータスコードが5(すなわち、500,503)から始まるすべてのエラーをキャッチする必要があります –

+0

エラーオブジェクトには、必要なすべての情報が含まれています。今すぐ私の答えを更新します – Dane

+0

私は今このエラーを受けています '未知の(約束しています)TypeError:プロパティ 'ステータス'は未定義のevalで読むことができません –

関連する問題