Angularjs $q服务的目的是什么?

Angularjs $q服务的目的是什么?,angularjs,q,Angularjs,Q,我无法理解$q服务在angular js中的用法。有人能详细阐述一下这个话题吗 angularjs中的$q服务是什么?我们如何使用这个我想我写的关于$q的文章可能会对您有所帮助 $q简介 $q是定义服务的角度。这和新承诺是一样的。但是$q通过增强开发人员可以更简单地执行复杂任务的附加功能,将事情提升到了一个新的水平 这是一个使用$q创建承诺的示例 angular.module("app",[]) .controller("ctrl",function($scope,$q){ var work

我无法理解
$q
服务在angular js中的用法。有人能详细阐述一下这个话题吗


angularjs中的
$q
服务是什么?我们如何使用这个

我想我写的关于$q的文章可能会对您有所帮助

$q简介

$q是定义服务的角度。这和新承诺是一样的。但是$q通过增强开发人员可以更简单地执行复杂任务的附加功能,将事情提升到了一个新的水平

这是一个使用$q创建承诺的示例

angular.module("app",[])
.controller("ctrl",function($scope,$q){
  var work = "resolve";
  var promise = $q(function(resolve, reject) {
    if (work === "resolve") {
        resolve('response 1!');
    } else {
        reject('Oops... something went wrong');
    }
  }); 
  promise.then(function(data) {
    alert(data)  

  }) 
})
$q.defer()

$q.defer()
返回承诺构造函数的实例。创建延迟对象后,可以从该对象访问以下方法和属性

解析(值)
–用值解析派生承诺。如果该值是通过$q.reject构造的拒绝,则承诺将被拒绝

拒绝(原因)
–拒绝带有原因的派生承诺。这相当于通过$q.reject构造拒绝来解决它

notify(value)
-提供承诺执行状态的更新。在承诺被解决或拒绝之前,可能会多次调用

promise
–{promise}–与此延迟请求关联的promise对象

结论


使用
$q
从非承诺对象/回调构造承诺,并使用
$q.all()
$q.race()
处理现有承诺。

可能的重复非常有用。谢谢