Ich versuche gerade, eine Art Konfigurationsdienst zu schreiben. Der Dienst liefert einen Pfad zu einem anderen Server. Dieser Pfad wird anhand des empfangenen Pfades auf seine Gültigkeit mit einer Ping-Funktion getestet. Wenn der Pfad auf einen nicht vorhandenen Server zeigt, gibt es kein Versprechen und die gesamte App bleibt aufgrund von Aktionen stecken, die normalerweise stattfinden sollten, nachdem das Versprechen unter Verwendung einer .then(function (data){ });
im Code übermittelt wurde.
Gibt es also eine Möglichkeit, ein solches fehlendes/ausstehendes Versprechen einzufangen, um das Einfrieren meiner App zu verhindern?AngularJS catch ideling Versprechen
Hier ist der Code in der AngularController (durch Taste ausgelöst wird)
applicationPingService.ping(path)
.then(function(successStatus){
if(successStatus == true){
//Some code here
}
else{
//Some other code here
}
});
Dies ist der gerufene Dienst.
Es dauert einen Pfad wie http://localhost:8080
und versucht, eine blank.html
Seite zu erreichen, um den Statuscode zu überprüfen, wenn der Server aktiv ist oder nicht. Diese
app.service('applicationPingService', ['$http', '$q', 'globalValue', function($http, $q, globalValue) {
this.ping = function(path)
{
return $http({
method: "GET",
url: path + "/blank.html"
}).then(function(response)
{
if(response.status == 200)
{
return true;
}
else{
return false;
}
});
};
}]);
ist nur ein Beispiel, aber ich möchte auch eine universelle Art und Weise wissen, wie zu fangen Leerlauf und fehlenden Versprechen
Vielen Dank im Voraus