2

投稿するか削除するかは関係ありません..私はこれを書きます:

$http({
    method: ''
    url: '',
    data: '',
    headers: ''
}).success(function(data, status, headers, config) {
    //whatever happens on success
}).error(function(data, status, headers, config) {
    //whatever happens on failure
});

上記を行うこととこれを行うことの違いは何ですか:

$http({
    method: ''
    url: '',
    data: '',
    headers: ''
}).then(function(response) {
    //success
},
    function(response) {
        //failed
};

一方には他方よりも利点がありますか?後に登場したもので、大きな違いはありませんか?違いを本当に知りたいだけで、人々が何を好むのか、そしてその理由.

4

2 に答える 2

0

.then()すべてが $q API で標準化されたので、構文は後で登場したと思います。おそらく下位互換性のために残されていました.success().error()

0.10.6の変更ログを参照してください。「$xhr サービスは、promise ベースの API を使用して $http に置き換えられました」と書かれています。

于 2014-07-22T17:26:35.793 に答える
0

$http ドキュメントから:

標準の then メソッドと 2 つの http 固有のメソッド (success と error) を持つ promise オブジェクトを返します。then メソッドは、成功とエラーのコールバックの 2 つの引数を取り、応答オブジェクトで呼び出されます。success メソッドと error メソッドは引数を 1 つ取ります。これは、リクエストがそれぞれ成功または失敗したときに呼び出される関数です。これらの関数に渡される引数は、then メソッドに渡される応答オブジェクトの非構造化表現です。

これは、投稿した両方の例が実際には同じことを行うことを意味します。なぜなら、.success(function () { ... })とはそれぞれおよび `.then(null, function () { ... }).error(function () { ... })の単なるエイリアスだからです。.then(function () { ... })

于 2014-07-22T16:08:34.270 に答える