2016-08-05 3 views
0

So habe ich verschiedene Zustände (mit verschiedenen Controllern), jeder Zustand holt Daten von API. Wenn der Benutzer den Status jedoch verlässt, bevor die Anforderung aufgelöst wird, wird der Handler aufgerufen, wenn er sich nicht in diesem Status befindet. Das ist nicht beabsichtigt. Außerdem haben einige der Handler $ intervals, die Daten abrufen (nach dem Auflösen der ersten Anfrage) -> damit die Daten immer noch abgerufen und abgerufen werden, während der Benutzer vor Stunden fortgegangen ist. Das erste, was mir in den Sinn kam:Wie stoppe http-Anfrage oder stoppe Behandlung von HTTP-Anfrage Ergebnis, wenn Sie aus dem Stand bewegen?

let isDestroyed = false; 

    $http.get('/someurl').then(response => { 
    if (isDestroyed) return; 

    processResponse(); 
    }); 

    $scope.$on('$destroy',() => { 
    isDestroyed = true; 
    }); 

Was kann ich tun?

Antwort

0

Angular docs:

Timeout - {Nummer | Versprechen} - Timeout in Millisekunden, oder das Versprechen, das die Anforderung abbrechen sollte, wenn gelöst.

Bedeutung: set timeout auf ein Versprechen, wenn der Rahmen zu zerstören - lösen das Versprechen