我的理解是,当你在angularjs中执行类似$http.post(...).then(...)
的操作时,它会返回一个promise。令我感到困惑的部分是$q
是一个承诺库,如果$http.post(...).then(...)
为我创造了承诺,那么$q
库是否必要?
答案 0 :(得分:3)
所以$ q可用于很多事情。另一个例子是webworkers将javascript执行转储到不同的线程上。您可以创建一个在promises中包装它的服务。我最喜欢用$ q做的事情就是这样:
$q.all([httpRequestOne, httpRequestTwo, httpRequestThree]).then(function(data){ ... });
这使我可以等到所有3个http请求完成后再运行代码。
答案 1 :(得分:1)