我不知道AngularJS git checkout ....
服务与异步请求后只使用$q
之间的确切区别。
.then()
的简单示例:
.then()
使用服务时(只是代码的一部分):
function InboxService($http) {
this.getEmails = function getEmails() {
return $http.get('/emails');
};
}
InboxService.getEmails()
.then(function (response) {
// use response
});
服务与解决和拒绝的区别是什么?
答案 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/