ここですべてのエラーを単に捕まえるには良い方法がありますか、複数の要求を持つこの約束のチェーンには複数のレベルがあるので、他のオプションはありませんか?これらの約束事を正しく取り扱っていますか?
return RequesterService.get('peakBlockIndex', request)
.then(function(res) {
rangeData = res.data;
rangeData.intervals = [];
if (!rangeData.intervals || rangeData.intervals <= 0) {
return $q.reject({ message: 'Request returned no interval data.' });
}
return SiteService.getSite(rangeData.site.id)
.then(function(site) {
if (!site.zoneId) {
return $q.reject({ message: 'Request for zoneId failed for the given site.' });
}
return getDayAheadData(site.zoneId, start, end)
.then(function(data) {
return handleBlockRange(rangeData, data[0].data, data[1].data);
})
.catch(function(err) {
return $q.reject({ message: 'Request for cleared & forecasted data failed for the given site.' });
})
})
.catch(function(err) {
return $q.reject({ message: 'Request for zoneId failed for the given site.' });
})
})
.catch(function(err){
return $q.reject({ message: 'Request for block-range data failed.' });
});
}
実際にネストする必要はありません。特別な理由がありますか? – Sirko
私はコードレビューを求めているので(このことはあまりにも広すぎる/意見に基づいて)、この質問を議論の対象外としている。おそらく[コードレビューstackexchange](http://codereview.stackexchange.com/help/on-topic)のトピックになるように調整することができます。 – Quentin
@Sirkoはい実際に私は第二のものを作る最初の要求から得られたデータを必要とし、第二から第三のものを作るためのデータが必要です。 – shwnrgr