异步调用延迟和承诺链
Asynchronous call defer and promise chain
我坚持使用异步调用链。我尝试了 google 但找不到确切答案。
要求我有一个方法
callApi(){
I am calling 4 service that all are asynchronous.
I want to chain all the asynchronous calls so that I can do
defer.resolve only when all request are done
}
任何帮助都是很大的帮助。
提前致谢。
您可以直接使用 $q.all()
。它需要一组承诺和 returns 一个承诺,当该数组中的所有承诺都已解决时,它将解决。
示例:
function callMultipleServices() {
return $q.all([
//Just some random functions returning promises...
someAsyncService(),
$http.get('http://google.de'),
someOtherAsyncService()
]) //.then(function(resultArray) { return doSomethingWith(resultArray) })
}
returned promise 将使用一个数组解析,其中包含您传入的 promise 的已解析值。如果您希望您的 promise return 以某种方式从服务结果,只需添加一个 .then
获取结果并以某种方式计算您的最终承诺结果(如上面的评论)
我坚持使用异步调用链。我尝试了 google 但找不到确切答案。
要求我有一个方法
callApi(){
I am calling 4 service that all are asynchronous.
I want to chain all the asynchronous calls so that I can do
defer.resolve only when all request are done
}
任何帮助都是很大的帮助。 提前致谢。
您可以直接使用 $q.all()
。它需要一组承诺和 returns 一个承诺,当该数组中的所有承诺都已解决时,它将解决。
示例:
function callMultipleServices() {
return $q.all([
//Just some random functions returning promises...
someAsyncService(),
$http.get('http://google.de'),
someOtherAsyncService()
]) //.then(function(resultArray) { return doSomethingWith(resultArray) })
}
returned promise 将使用一个数组解析,其中包含您传入的 promise 的已解析值。如果您希望您的 promise return 以某种方式从服务结果,只需添加一个 .then
获取结果并以某种方式计算您的最终承诺结果(如上面的评论)