2017-04-19 3 views
1

Gibt es eine Möglichkeit für mich, einen Timer für die Client-Seite zu setzen, um regelmäßig automatisch eine Anfrage an den Server zu stellen?Timer für HTTP-Anfrage einstellen

Zum Beispiel

Polling(){ 

this.http.makeRequestEvery1min(){ 

subscribe(data => { 

) 
} 
//request should be every sent every 1 minute 

} 

Antwort

1
Rx.Observable.interval(60*1000). 
    switchMap(x=> http.getSomething()) 
    .subscribe(x=>console.log(x)) 
+0

Dies ist der sauberste Weg. – Thibs

0

Sie Javascript Die setInterval-Funktion innerhalb ngOnInit verwenden können.

setInterval (function() { // Do Something}, 3000)

0

Sie haben die Intervall-Funktion zu verwenden.

.controller 
('sampleController',['$scope','$interval', function ($scope, $interval) { 


     function Polling(){ 

      //Write your http request here. 
     } 


var interval = 1000; //in milliseconds 

var intervalPromise = $interval(polling, 1000); 


//To Kill the interval function on page closure or route change 

$scope.$on('$destroy', function() { 
     if (angular.isDefined(intervalPromise)) { 
      $interval.cancel(intervalPromise); 
     } 
    }); 

}]); 
+1

haben Sie zum Beispiel diese stackoverflow-Post zu sehen. http://stackoverflow.com/questions/35316583/angular2-http-at-an-interval – Kalyan