[解決済み] AngularJSのプロミスでsuccess/error/finally/catchを使用する。
2022-09-11 17:47:45
質問
私は
$http
を使用していますが、返されたプロミスをどのように使用し、エラーを処理するかについてよくわかりません。
私はこのコードを持っています。
$http
.get(url)
.success(function(data) {
// Handle data
})
.error(function(data, status) {
// Handle HTTP error
})
.finally(function() {
// Execute logic independent of success/error
})
.catch(function(error) {
// Catch and handle exceptions from success/error/finally functions
});
この方法が良いのか、それとももっと簡単な方法があるのでしょうか?
どのように解決するのですか?
プロミスはステートメントを抽象化したもので、非同期コードで同期的に表現することを可能にします。1回限りのタスクの実行を表します。
また、例外処理も可能で、通常のコードと同様に、プロミスから戻ることも、投げることもできます。
同期コードで欲しいのは
try{
try{
var res = $http.getSync("url");
res = someProcessingOf(res);
} catch (e) {
console.log("Got an error!",e);
throw e; // rethrow to not marked as handled
}
// do more stuff with res
} catch (e){
// handle errors in processing or in error.
}
プロミスの方は非常に似ています。
$http.get("url").
then(someProcessingOf).
catch(function(e){
console.log("got an error in initial processing",e);
throw e; // rethrow to not marked as handled,
// in $q it's better to `return $q.reject(e)` here
}).then(function(res){
// do more stuff
}).catch(function(e){
// handle errors in processing or in error.
});
関連
-
[解決済み] Angular JS $locationChangeStart 次の url ルートオブジェクトを取得する
-
[解決済み] AngularJSでkeypressイベントを使用するには?
-
[解決済み] AngularJS 。scope.apply()呼び出し時の$digest already in progressエラーを防ぐ。
-
AngularJS がエラー $digest already in progress を報告する
-
[解決済み] Angularjsを使用してローカルストレージにデータを保存するにはどうすればよいですか?
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] ng-modelとng-bindの違いは何ですか?
-
[解決済み] ng-repeat :単一フィールドによるフィルタリング
-
[解決済み] Angular HttpPromise: `success`/`error` メソッドと `then` の引数の違い。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】typeerrorは、未定義のプロパティ'data'を読み取ることができません。
-
[解決済み] angularJSのSTATEを理解する
-
[解決済み] X-Frame-Options'を'SAMEORIGIN'に設定しているため、フレーム内での表示を拒否された。
-
[解決済み] Angular ng-repeat エラー "リピータ内の重複は許可されません。"
-
[解決済み] 新しい/分離されたスコープを求める複数のディレクティブ [ngController, ...] がある。
-
[解決済み] createspyとcreatespyobjの違いは何ですか?
-
angularjs統合ueditor入門
-
[解決済み] AngularJs .$setPristineでフォームをリセットする
-
[解決済み] Angular JSによるシンプルなポップアップ
-
[解決済み] ng-modelとng-bindの違いは何ですか?