我正在使用 AngularJS 的 $q 函数将几个 Promise 组合在一起。但是,我还想设置一个超时来取消这个承诺,如果在一段时间后没有对这些承诺中的任何一个做出任何响应,我会做其他事情。这可能吗?
代码:
var data = {};
var map_dataFile = $http.get("GET Request 1"),
node_dataFile = $http.get("GET Request 2"),
country_data = $http.get("GET Request 3"),
shipment_data = $http.get("GET Request 4"),
location_data = $http.get("GET Request 5");
$q.all([map_dataFile, node_dataFile, country_data, shipment_data, location_data]).then(function(results) {
data.countries = results[0].data;
data.nodes = results[1].data;
data.countries_indicator = results[2].data;
data.shipment_flows = results[3].data;
data.location_data = results[4].data;
});
//do something else if it takes more than 10s, and cancel the $q.all promise