13

angular $httpモジュールでjquery 'complete'コールバックをエミュレートする方法はありますか? リクエストが成功したか失敗したかに関係なく実行したいコードがいくつかあり、現時点ではこれを書かなければならないことに気づきました:

$http.get(someUrl).success(function(){
        successCode();
        completeCode();
    }).error(function(){
        errorCode();
        completeCode();
    })

しかし、私はむしろ次のようなものを書きたいです:

$http.get(someUrl).success(function(){
        successCode();
    }).error(function(){
        errorCode();
    }).complete(function(){
        completeCode();
    })

promise API も使用してみましたが、同じ問題が発生します。なにか提案を?

4

1 に答える 1

14

2014 年 8 月の更新: 最近のバージョンの Angular では.always名前が変更されました。を.finally好む。.finally.always

IE8 をサポートするには、ブラケット表記を使用して呼び出す必要があることに注意してください["finally"]


.alwaysAngularJSで使用できます

この変更はかなり新しいものです (しばらくの間 jQuery で行うことができます)。コミットはこちらで確認できます。これには、AngularJS 1.1.5 以降が必要です。

always(callback)– Promise の履行または拒否のいずれかを観察できますが、最終的な値を変更することなく観察できます。これは、リソースを解放したり、promise が拒否されたり解決されたりした場合に必要なクリーンアップを行うのに役立ちます。詳細については、完全な仕様を参照してください。

フィドル

于 2013-08-09T10:08:38.020 に答える