2017-10-16 60 views
1

我在我的ionic1應用程序中的控制器中進行HTTP調用。有時互聯網連接速度很慢,我想暫停腳本。例如,當存在20秒無響應警報應該彈出爲ionic1中的http請求設置超時值angularjs

.controller('account_statement_ctrl', function($scope, $http, $ionicLoading, $ionicPopup, $cordovaToast, $location, $ionicModal, $filter) { 
    $scope.account_number = localStorage.getItem("account_number"); 
    ///alert if connection fails 
    $scope.connect = function() { 
    var alertPopup = $ionicPopup.alert({ 
     title: 'Error', 
     template: '<p align="center">Internet Connectivity Problem</p>', 
    }); 
    }; 


    $scope.nobill = function() { 
    var alertPopup = $ionicPopup.alert({ 
     title: 'Error', 
     template: '<p align="center">Not Found</p>', 
    }); 
    }; 

    $scope.acc_request = function() { 

    $scope.start_date = $filter('date')($scope.sdate, "yyyy-MM-dd"); 
    $scope.end_date = $filter('date')($scope.edate, "yyyy-MM-dd"); 

    $ionicLoading.show({ 
     template: '<p>Processing Request</p><ion-spinner></ion-spinner>' 
    }); 
    $http.get("http://localhost/app/state?account_number=" + $scope.account_number).success(function(data) { 
     $scope.statement = data.data 
     //console.log(JSON.stringify(data.data)) 
     { 
      $ionicLoading.hide(); 
     } 
    }) 
    } 
}) 

回答

0

$http.get返回Promise其可以調用一個或success回調error。您可以設置請求的超時時間(請參閱docs),然後對error回調中的超時作出反應。

$http.get(myUrl, { timeout: 20000 }).then(successCallback, errorCallback); 

閱讀general documentation瞭解更多詳情。

順便說一句,您正在使用的腳本.success已棄用。 建議的方法是使用標準化的Promise API,即.then()

+0

你能把它寫成我的腳本嗎? – user6579134

+0

我添加了一個基本片段 –