2017-10-16 13 views
1

私はionic1アプリのコントローラでHTTPコールを行っています。インターネット接続が遅い時があり、私はスクリプトにタイムアウトを入れたいと思います。例えば、20秒間応答がない場合、アラートはsuccessまたはerrorコールバックを呼び出すことができますいずれかPromiseを返しHTTPリクエストのタイムアウトをanglejsのionic1で設定しました

.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ポップアップする必要があります。要求(docsを参照)でタイムアウトを設定し、errorコールバックのタイムアウトに反応することができます。

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

詳しくはgeneral documentationをお読みください。

お使いのスクリプトでは、使用している.successは廃止予定です。 標準のPromise APIを使用することをお勧めします。つまり、.then()です。

+0

あなたは私のスクリプトにそれをフレーズできますか? – user6579134

+0

基本スニペットを追加しました –

関連する問題