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 服务已替换为具有基于承诺的 API 的 $http”

于 2014-07-22T17:26:35.793 回答
0

来自$http 文档

返回一个带有标准 then 方法和两个 http 特定方法的 promise 对象:成功和错误。then 方法接受两个参数,一个成功和一个错误回调,它们将被一个响应对象调用。成功和错误方法采用单个参数 - 分别在请求成功或失败时调用的函数。传递给这些函数的参数是传递给 then 方法的响应对象的解构表示。

这意味着您发布的两个示例实际上都是一样的,因为.success(function () { ... }).error(function () { ... })分别只是.then(function () { ... })和 `.then(null, function () { ... }) 的别名。

于 2014-07-22T16:08:34.270 回答