私はRESTリソースを取得するいくつかのコードで約束の使用を改善しようとしています。私はアクションの同じシーケンスを実行させるREST呼び出しの数を持っている:それは以前に このRESTリクエストの約束コードを改善するにはどうすればよいですか?
- は、サーバからの設定リソースを取得します要求
- 実際のリソース
- が
- 応答してJSONを解析するための要求を送るは、解析されたデータとの成功を示すフラックスアクションをディスパッチ。
私が現在これを行うために使用しているコードは次のとおりです。
getThingsFromServer() {
return getConfigIfNeeded().then(() => {
dispatchStartOfRequestAction();
return window.fetch(`${store.baseURL}/resource`)
.then((response) => {
if(response.ok) {
return response.json();
} else {
return Promise.reject(new Error(`${response.status} ${response.statusText}`));
}
}, (error) => {
return Promise.reject(new Error(`Network error: ${error.message}`));
})
.then((data) => {
dispatchSuccessAction(data);
}, (error) => {
return Promise.reject(new Error(`JSON parse error: ${error.message}`));
})
.catch((error) => {
dispatchFailureAction(error)
});
});
}
私は(catch()
で行われる)障害アクションを派遣したい後、個別に扱うことができるようにしたいと思いますエラー条件がいくつかあります。個々then()
エラーハンドラの1つが呼び出される場合は瞬間
は、後続のすべてのthen()
エラーハンドラは、また、最終的にはcatch()
を呼び出す前に呼び出されます。私はちょうど1つの個々のハンドラとキャッチを呼び出すことが必要です。
私は、個々のエラーを個別に処理することなく、最後に単一のキャッチを使用することができますが、さまざまな情報源が、プロミスチェーンの終わりにこれらのさまざまなエラーをすべて処理するプラクティスをサポートしています。個人的な意見を超えてこれに「正しい」答えがありますか?その後、ハンドラから
を使用したいと思う、SO – Quince
のトピックをオフに思えるあなたも何かをしたいですか'getConfigIfNeeded'のエラー?それとも決して拒絶しないのだろうか? – Bergi