[解決済み] Angular.jsでプロミスが実行されたときに常に何らかのコードを実行する方法
2023-07-08 13:26:24
質問
Angular.jsのアプリケーションで、ある非同期処理を実行しています。操作が始まる前に、モーダルなdivでアプリケーションを覆い、操作が完了したら、操作が成功したかどうかにかかわらず、divを削除する必要があります。
現在、私はこれを持っています。
LoadingOverlay.start();
Auth.initialize().then(function() {
LoadingOverlay.stop();
}, function() {
LoadingOverlay.stop(); // Code needs to be duplicated here
})
これはうまく動作しますが、私はこの擬似コードのような、よりクリーンなものを希望します。
LoadingOverlay.start();
Auth.initialize().finally(function() { // *pseudo-code* - some function that is always executed on both failure and success.
LoadingOverlay.stop();
})
この問題はよくあることだと思うので、できるのではないかと思ったのですが、ドキュメントには何も書かれていません。何か思い当たることはありませんか?
どのように解決するのですか?
この機能は
このプルリクエスト
に実装され、現在ではAngularJSの一部となっています。当初は "always" と呼ばれていましたが、その後名前が変更され
finally
という名前に変更されたので、以下のようなコードになります。
LoadingOverlay.start();
Auth.initialize().then(function() {
// Success handler
}, function() {
// Error handler
}).finally(function() {
// Always execute this on both error and success
});
ただし
finally
は予約キーワードなので、特定のブラウザ(IEやAndroid Browserなど)で壊れないように文字列にする必要があるかもしれないことに注意してください。
$http.get('/foo')['finally'](doSomething);
関連
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] 明示的なプロミス構築のアンチパターンとそれを回避する方法とは?
-
[解決済み] オブジェクトがPromiseであるかどうかを判断するにはどうすればよいですか?
-
[解決済み】JavaScriptの関数名を文字列で指定して実行する方法
-
[解決済み】Angular.jsのセレクトボックスでデフォルトの選択肢を持つ方法
-
[解決済み】複数の引数でAngular.jsのフィルタを呼び出すには?
-
[解決済み】プロミスの値にアクセスする方法は?
-
[解決済み] .then()チェーンで以前のプロミス結果にアクセスするにはどうすればよいですか?
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] JavaScriptとLuaの微妙な違い [終了しました]
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] モバイルWeb HTML5フレームワークの選び方【終了しました
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] <ng-content>が空かどうかを確認する方法は?(これまでのAngular 2+で)
-
[解決済み] JavaScriptのArray.sort()メソッドでシャッフルするのは正しいのか?
-
[解決済み] V8 Javascript エンジンのスタンドアロン実行
-
[解決済み] Chrome拡張機能:popup.htmlを強制終了させる