2017-12-08 8 views
0

Open Weathermap APIからデータを取得しようとしていますが、何らかの理由で動的APIです。あなたがに行かなければなら3時間あたりの降雨量を取得するReact native:JSONオブジェクトが存在しない場合、それを無視する方法

:それは雪が降っていた場合

json.list[0].rain['3h'] 

は今、「雨」は

json.list[0].snow['3h'] 

に変身私のようなコードを持ってこの:

return fetch(url) 
    .then(res => res.json()) 
    .then(json => ({ 
     temp1: json.list[0].main.temp, 
     tempmin1: json.list[0].main.temp_mix, 
     tempmax1: json.list[0].main.temp_max, 
     weather1: json.list[0].weather[0].main, 
     time: json.list[0].dt_txt, 
     name: json.city.name, 
     rainmillimeter1: json.list[0].rain['3h'], 
     snowmillimeter1: json.list[0].snow['3h'], 
     wind1: json.list[0].wind['speed'], 
     vochtigheid1: json.list[0].main['humidity'], 
     luchtdruk1: json.list[0].main['pressure'], 

しかし、その後、それは未処理の約束拒絶を取得し、APIのいずれかをロードしません。 雨か雪のどちらかを無視する方法はありますか?

ありがとうございます!

答えて

0

あなたは、オブジェクトのいずれかが存在しないかどうかをチェックするために三項演算子を使用することができます:約束は失敗し、.catch((e) => {})を使用してエラー処理がない場合

rainmillimeter1: (json.list[0].rain) ? json.list[0].rain['3h'] : null, 
snowmillimeter1: (json.list[0].snow) ? json.list[0].snow['3h'] : null, 

はまた、未処理の約束拒絶は通常です。あなたがおそらくAPIを入れておく必要があるものは、いつでも到達不可能です。

詳細はこちらhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch

関連する問題