小编典典

Angular HttpPromise:`success`/`error` 方法和`then` 的参数之间的区别

all

根据AngularJS doc,调用$http返回以下内容:

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


除了response对象在一种情况下被解构的事实之外,我没有得到两者之间的区别

  • 传递的成功/错误回调作为参数传递promise.then
  • 作为promise的promise.success/方法的参数传递的回调promise.error

有没有?这两种传递看似相同的回调的不同方式有什么意义?


阅读 103

收藏
2022-08-08

共1个答案

小编典典

注意 这个答案实际上是不正确的;正如下面的评论所指出的, success() 确实返回了原始承诺。 我不会改变;并将其留给 OP 进行编辑。


2 之间的主要区别在于.then()call 返回一个承诺(通过回调返回的值解析),而.success()更传统的注册回调方式并且不返回承诺。

基于.then()Promise的回调( __

.success()当您不需要链接调用或使用 Promise API(例如,在路由中)时,该方法是一种简化的便捷方法。

简而言之:

  • .then()- Promise API 的全部功能,但略显冗长
  • .success()- 不返回承诺,但提供更方便的语法
2022-08-08