angularjs simple .then或$ q异步请求中的服务

时间:2016-04-14 18:52:11

标签: javascript angularjs promise angular-promise q

我不知道AngularJS git checkout ....服务与异步请求后只使用$q之间的确切区别。

.then()的简单示例:

.then()

使用服务时(只是代码的一部分):

function InboxService($http) {
  this.getEmails = function getEmails() {
    return $http.get('/emails');
  };
}

InboxService.getEmails() .then(function (response) { // use response }); 服务与解决和拒绝的区别是什么?

2 个答案:

答案 0 :(得分:2)

  

使用解决和拒绝的$ q服务有什么区别?

我假设您询问var deferred = $q.defer()与后续deferred.resolve()deferred.reject()的使用情况?在这种情况下,答案是您不需要它,因为您已经有$http服务返回的promise对象。实际上,不建议使用$q手动构建另一个新承诺,并将其视为anti-pattern

如果您使用尚未包含在promise中的异步函数(超时,ajax请求),那么当您可能希望使用$q创建并返回promise时,就会出现这种情况。但是再一次,在你的情况下,你不需要它,因为$http服务构造对你有所承诺,而另一个只是多余的。

答案 1 :(得分:1)

$ q是多余的,在大多数情况下是不需要的。 http://www.codelord.net/2015/09/24/$q-dot-defer-youre-doing-it-wrong/