Angularjs的$http方法的success和then有什么区别?

这两个感觉都差不多啊,官方文档说angular1.5之后废弃了success和error改用then,我现在还一直在用success和error..

阅读 5.1k
2 个回答
要将区别先弄清$http服务,它是对原生XMLHttpRequest对象的简单封装,是只能接受一个参数的方法,这个方法会返回一个promise对象,具有sccess和error两个方法。当然,我们也可以在响应返回时用then方法来处理,会得到一个特殊的参数,代表了对象的成功或失败信息,或者可以使用success和error回调代替。

这样就很明晰了,then方法和success方法的主要区别就是,then方法会接受到完整的响应对象,而success则会对响应对象进行析构。

then是源于Promise对象的语法.是异步编程的一种解决方案,比传统的回调函数更合理和更强大切更利于阅读.

success就是典型的回调嵌套.你现在可以能的一两层回调没什么.你想象一下如果嵌套5个以上回调是什么样子,性能方面暂且不说,就连看都看得迷迷糊糊
then就清晰很多 切性能较好

then()
    .then()
    .then()
    .......

你可以看一下 ES6入门 阮一峰 Promise对象

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题