首页 > 解决方案 > 在AngularJS中对具有不同参数的同一个API函数进行多次异步调用

问题描述

考虑对同一 API 方法的 3 次调用。它们彼此独立。我怎样才能异步调用它们,以便一旦它们中的任何一个完成,我就可以对响应做一些事情,而不是等待其他的完成?寻找类似于 C# 中可用的 System.Threading.Tasks 的东西

var promise1 = $http.get("/api/city/boston");
promise1.success(function(name) {
   console.log("Your city is: " + name);
});

var promise2 = $http.get("/api/city/newyork");
promise2.success(function(name) {
   console.log("Your city is: " + name);
});

var promise3 = $http.get("/api/city/chicago");
promise3.success(function(name) {
   console.log("Your city is: " + name);
});

标签: javascriptangularjsasynchronous

解决方案


您的代码将不起作用。您的变量是 promise1、promise2、promise3。但是在解决时,您只使用了 promise.resolve。

其次,您应该使用 then 而不是 success。像下面

$http.get(url).then(function(response){
    //do something with the response.
 });

推荐阅读