簡體   English   中英

AngularJS $ q。所有超時

[英]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

$httpget方法可以使用config對象。 此配置對象的支持參數之一是timeout 參閱文件

您可以將超時值傳遞給http config,如果任何操作花費更多時間,則完整的$q諾言將被拒絕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM