Javascript Angular JS$http.success()与$q.resolve()?
我在试着找出承诺。。。与带有q.resolve()的承诺(q=$q.defer())相比,简单地发出一个$http请求,然后根据什么是成功的(.success())、什么是失败的(.fail())采取行动有什么区别Javascript Angular JS$http.success()与$q.resolve()?,javascript,angularjs,Javascript,Angularjs,我在试着找出承诺。。。与带有q.resolve()的承诺(q=$q.defer())相比,简单地发出一个$http请求,然后根据什么是成功的(.success())、什么是失败的(.fail())采取行动有什么区别$http方法返回承诺。简言之,它们也可以通过然后链接success和fail仅用于解决问题,而仅用于拒绝,然后s.
$http
方法返回承诺。简言之,它们也可以通过然后
链接success
和fail
仅用于解决问题,而仅用于拒绝,然后s.
本身使用$q
。这两项服务不是在同一水平上运行的
$http.get(url)
返回可以解析或拒绝的承诺。这意味着您正在使用由服务($http)提供的承诺。在内部,$http
将调用$q.defer()
,然后$q.resolve()
或$q.reject()
。这将调用您的.success()
或.fail()
方法
$q
是一项创建您自己承诺的服务
使用$q
是了解承诺的一个很好的方法,但在您的情况下,$http
已经为您做了这项工作 我不确定我是否理解你的问题。您如何使用$q.defer
发出$http
请求?如果您没有发出请求,那么这显然就是区别所在。$http legacy promise方法success和error/fail已被弃用。是的,成功和错误/失败已被弃用,取而代之的是then。但核心答案保持不变$http
返回一个承诺,并$q
“创建”一个承诺。在then()。