$http.post().then vs $q 库?
$http.post().then vs $q library?
据我了解,当您在 angularjs 中执行类似 $http.post(...).then(...)
的操作时,它 returns 是一个承诺。令我困惑的是 $q
是一个 promise 库,如果 $http.post(...).then(...)
为我创建了一个 promise,$q
库是否必要?
如果您只是通过 $http.post(...).then(...)
处理响应,则不需要直接使用 $q
服务。
但是 angular 在您调用 $http
.
时使用 $q
internaly
另请注意,$q
不是一个单独的库,它只是 angular 内核中的模块。
所以$q可以用来做很多事情。另一个例子是将 javascript 执行转储到不同线程的网络工作者。您可以创建一个将其包装在承诺中的服务。我最喜欢用 $q 做的事情之一是这样的:
$q.all([httpRequestOne, httpRequestTwo, httpRequestThree]).then(function(data){ ... });
这让我可以等到所有 3 个 http 请求都完成后再 运行 编码。
据我了解,当您在 angularjs 中执行类似 $http.post(...).then(...)
的操作时,它 returns 是一个承诺。令我困惑的是 $q
是一个 promise 库,如果 $http.post(...).then(...)
为我创建了一个 promise,$q
库是否必要?
如果您只是通过 $http.post(...).then(...)
处理响应,则不需要直接使用 $q
服务。
但是 angular 在您调用 $http
.
$q
internaly
另请注意,$q
不是一个单独的库,它只是 angular 内核中的模块。
所以$q可以用来做很多事情。另一个例子是将 javascript 执行转储到不同线程的网络工作者。您可以创建一个将其包装在承诺中的服务。我最喜欢用 $q 做的事情之一是这样的:
$q.all([httpRequestOne, httpRequestTwo, httpRequestThree]).then(function(data){ ... });
这让我可以等到所有 3 个 http 请求都完成后再 运行 编码。