根据AngularJS doc,调用$http返回以下内容:
$http
返回一个带有标准 then* 方法和两个 http 特定方法的 promise对象: success 和 error 。 then 方法接受两个参数,一个成功 和 一个 错误 回调,它们将被一个响应对象调用。 成功 和 错误 方法采用单个参数 - 分别在请求成功或失败时调用的函数。传递给这些函数的参数是传递给 then 方法的响应对象的解构表示。 *
除了response对象在一种情况下被解构的事实之外,我没有得到两者之间的区别
response
promise.then
promise.success
promise.error
有没有?这两种传递看似相同的回调的不同方式有什么意义?
注意 这个答案实际上是不正确的;正如下面的评论所指出的, success() 确实返回了原始承诺。 我不会改变;并将其留给 OP 进行编辑。
2 之间的主要区别在于.then()call 返回一个承诺(通过回调返回的值解析),而.success()更传统的注册回调方式并且不返回承诺。
.then()
.success()
基于.then()Promise的回调( __
.success()当您不需要链接调用或使用 Promise API(例如,在路由中)时,该方法是一种简化的便捷方法。
简而言之: