[英]AngularJS $q.all timeout
我正在使用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
$http
和get
方法可以使用config對象。 此配置對象的支持參數之一是timeout
。 參閱文件
您可以將超時值傳遞給http
config,如果任何操作花費更多時間,則完整的$q
諾言將被拒絕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.