角度JS这两种方式调用Web服务方法的区别

时间:2014-07-22 16:04:45

标签: angularjs angularjs-http

无论是发布还是删除等都无关紧要。我会写这个:

$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
};

有人比其他人有优势吗?一个人来晚了,并没有太大的区别? 只是想知道真正的差异以及人们喜欢使用的内容以及原因。

2 个答案:

答案 0 :(得分:0)

来自$http docs

  

使用标准then方法和两个http返回一个promise对象   具体方法:成功与错误。那么方法需要两个   参数成功和错误回调将使用a调用   响应对象。成功和错误方法只需一个参数    - 分别在请求成功或失败时调用的函数。传递给这些函数的参数是   传递给的反应对象的结构化表示   然后方法。

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

答案 1 :(得分:0)

我相信.then()语法后来出现了,因为所有内容都在$ q API上标准化了。 .success().error()可能是为了向后兼容而留下的。

请参阅Changelog获取0.10.6,其中“$ xhr服务已被$ http替换为基于承诺的apis。”