Ich möchte in Angular 5 Komponente schreiben, Funktion, die mich alle 3 Sekunden meine aktuelle Position, wenn es geändert wurde.Angular 5 zu viele Geolocation Position Antworten
Mein Code sieht wie folgt aus:
export class WorkComponent implements OnInit {
constructor(private userService: UserService) {}
ngOnInit() {
this.subscribeCurrentPosition();
}
subscribeCurrentPosition() {
if (window.navigator.geolocation) {
window.navigator.geolocation.watchPosition(
(position) => {
this.myLocation = new TrackLocation(null, position.coords.latitude, position.coords.longitude);
this.userService.sendCurrentPosition(this.myLocation, this.supplierId); //send position to backend
setInterval(() => this.subscribeCurrentPosition(), 3000);
}, (error) => {
LoggingService.error('Geolocation error: '+ error);
});
} else {
LoggingService.error('Geolocation not supported in this browser');
}
}
}
I Standortwechsel in Funktion subscribeCurrentPosition empfangen(), aber Problem ist, dass alle 3 Sekunden Funktion mehr und mehr mal 1 genannt wird, 2, 4 .. Es scheint wie jeder Funktionsaufruf, ruft 2 mal die nächste Funktion auf. Und dann erhielt ich eine Warnung, dass ich zu viele Anfragen von Geolocation API sende.
Ich weiß nicht, warum Funktion subscribeCurrentPosition() mehr als einmal alle 3 Sekunden aufruft. Es gibt nur eine Instanz der Komponente in der Zeit.
Dank ! Große und schnelle Antwort es funktioniert! –