$ http.post()。然后vs $ q库?

时间:2015-07-22 14:53:49

标签: angularjs q

我的理解是,当你在angularjs中执行类似$http.post(...).then(...)的操作时,它会返回一个promise。令我感到困惑的部分是$q是一个承诺库,如果$http.post(...).then(...)为我创造了承诺,那么$q库是否必要?

2 个答案:

答案 0 :(得分:3)

所以$ q可用于很多事情。另一个例子是webworkers将javascript执行转储到不同的线程上。您可以创建一个在promises中包装它的服务。我最喜欢用$ q做的事情就是这样:

$q.all([httpRequestOne, httpRequestTwo, httpRequestThree]).then(function(data){ ... });

这使我可以等到所有3个http请求完成后再运行代码。

答案 1 :(得分:1)

如果您只是通过$http.post(...).then(...)处理暂停,则无需直接使用$q服务。

但是,当您拨打$q时,角度会使用$http internaly

另请注意,$q不是一个单独的库,它只是角度核心内的模块。