Javascript 在AngularJS中使用不同参数对同一API函数进行多个异步调用
考虑对同一API方法的3个调用。它们相互独立。我如何异步调用它们,以便在它们中的任何一个完成后,我可以对响应进行处理,而不是等待其他响应完成?正在寻找类似于C中可用的System.Threading.Tasks的东西#Javascript 在AngularJS中使用不同参数对同一API函数进行多个异步调用,javascript,angularjs,asynchronous,Javascript,Angularjs,Asynchronous,考虑对同一API方法的3个调用。它们相互独立。我如何异步调用它们,以便在它们中的任何一个完成后,我可以对响应进行处理,而不是等待其他响应完成?正在寻找类似于C中可用的System.Threading.Tasks的东西# 你的代码将无法工作。你的变量是promise1,promise2,promise3。但在解决问题时,您只使用了promise.resolve 其次,你应该用它来代替成功。如下 $http.get(url).then(function(response){ //do som
你的代码将无法工作。你的变量是promise1,promise2,promise3。但在解决问题时,您只使用了promise.resolve 其次,你应该用它来代替成功。如下
$http.get(url).then(function(response){
//do something with the response.
});
你的代码将无法工作。你的变量是promise1,promise2,promise3。但在解决问题时,您只使用了promise.resolve 其次,你应该用它来代替成功。如下
$http.get(url).then(function(response){
//do something with the response.
});
使用angular的
$q.race()
表示第一个完成的,使用$q.all()
表示所有完成的
您还可以使用函数和映射请求数组来简化请求
还请注意,success()
已被弃用
比如:
const getCityData = (city) => {
return $http.get(`/api/city/${city}`).then(res => res.data)
}
const requestPromises = ['boston','newyork','chicago'].map(getCityData);
$q.race(requestPromises).then(data => console.log('First one completed ', data));
$q.all(requestPromises).then(dataArray => console.log('All completed', dataArray ))
.catch(err => console.log('Something failed', err)
确保将$q
服务注入运行此操作的控制器或服务中
对于第一个完成的,使用angular的
$q.race()
,对于所有完成的,使用$q.all()
您还可以使用函数和映射请求数组来简化请求
还请注意,success()
已被弃用
比如:
const getCityData = (city) => {
return $http.get(`/api/city/${city}`).then(res => res.data)
}
const requestPromises = ['boston','newyork','chicago'].map(getCityData);
$q.race(requestPromises).then(data => console.log('First one completed ', data));
$q.all(requestPromises).then(dataArray => console.log('All completed', dataArray ))
.catch(err => console.log('Something failed', err)
确保将$q
服务注入运行此操作的控制器或服务中
我非常肯定您提供的代码会做到这一点。如果后端支持,AngularJS框架将并行执行这些操作。顺便说一句,
.success
方法已经成功了。我很确定您提供的代码会做到这一点。如果后端支持,AngularJS框架将并行执行这些操作。顺便说一句,.success
方法已被禁用。