0

Ich entwickle gerade eine Ionic/Cordova App, und ich habe eine kleine Frage zu Angular. Ich habe einige Zustände und gehe mit $ state.go von einem Zustand zu einem anderen. Jeder Staat hat seinen Controller, und es funktioniert großartig.Ein- und Ausschalten von Hintergrundaufgaben in Angular

Jetzt versuche ich einen GPS-Tracker hinzuzufügen (die App ist für ein Orientierungsspiel, es erlaubt dem Spielleiter, den Spielern zu folgen), aber ich weiß nicht, wie ich es machen soll. Ich muss ein Modul/Service/Funktion/was auch immer erstellen, die von irgendwo in jedem Controller gestartet werden kann, und kann auf die gleiche Weise stoppen.

Ich möchte diesen "Thread" starten, der eine setInterval-Funktion enthält, die die Position aktualisiert und weiterhin zwischen Zuständen und Controllern navigiert. Aber ich muss es am Ende des Spiels stoppen, also brauche ich eine Möglichkeit, es herunterzufahren.

Können Sie mir bitte helfen, das zu tun?

Vielen Dank!

Antwort

0

Sie können Web Worker verwenden, um dies zu erreichen, wenn der Prozess in einem eigenen Thread ausgeführt werden soll. überprüfen bitte das Projekt unter: https://github.com/mattslocum/ng-webworker https://github.com/FredrikSandell/angular-workers

+0

In Ordnung, aber ist es möglich, die Kontrolle über die Funktion zu erhalten, nachdem Controller hat sich geändert? Weil es das Versprechen verlieren wird, oder? – SylvainAr

+0

Ja, das könnte so sein. Sie können jedoch localStorage oder sqlite verwenden, um die fertige Arbeit des Webworker zusammen mit einem Flag zu speichern, und Sie können auf die Daten in jedem Controller zugreifen. Bitte upvote, wenn Sie meine Antwort nützlich fanden. –