Ich versuchte die $q
Dienst wie folgt, aber der Browser immer noch nicht auf die Antwort warten. Ich habe schon fast einen Tag damit verbracht, eine Lösung zu finden, ich habe auch versucht, die $timeout
.Lassen Sie den Browser warten auf API Antwort/http Anruf Antwort in angularjs
login.controller("loginCtrl", ['$scope', '$rootScope', '$filter', '$window', '$http', 'APIService', 'localStorageService', 'doAlert', '$translate', '$q', '$timeout',
function ($scope, $rootScope, $filter, $window, $http, APIService, localStorageService, doAlert, $translate, $q, $timeout) {
$scope.isLogOut = true;
$(window).unload(function() {
$rootScope.$broadcast('onUnload');
});
$scope.$on('onUnload', function (e) {
var deferred = $q.defer();
$http.get(url).
success(function (data, status, headers, config) {
deferred.resolve(data);
}).
error(function (data, status, headers, config) {
deferred.reject(status);
});
return deferred.promise;
});
gerade Sayin: '$ http'already gibt ein Versprechen. Es sollte also kein '$ q' nötig sein. – Aer0
versuchte dies auch. Aber kein Glück $ http.get (url) .success (Funktion (Antwort) { response.data; }); – user2617611
Verwenden Sie '$ http.then (Funktion (Erfolg) {...}, Funktion (Fehler) {...})' anstelle von Erfolg und Fehler. Sie können auch die Dokumentation ansehen: https://docs.angularjs.org/api/ng/service/$http – Aer0