Hannes Weninger: AngualrJS $q

Beitrag lesen

Hallo,

ich programmier jetzt schon einige Zeit in AngualrJS - aber keine "schwierigen" Sachen sondern nur MVC. Ich hab deshalb keine Ahnung, was dieser Code unten macht:

var currentUser = false;
...
function getCurrentUser() {
			var deferred = $q.defer();
			if(currentUser){
				deferred.resolve(currentUser);
			} else {
				getCurrentUserFromAPI().success(function(data) {
					if(data) {
						currentUser = data;
						return deferred.resolve(currentUser);
					}
				}).error(function(data) {
					var token = authTokenService.getToken();
					if(token) {
						authTokenService.deleteToken();
					}
					return deferred.reject(data);
				});
			}
			return deferred.promise;
		}

Vor allem mit den $q- Statements komm ich gar nicht zu recht. Ich hab mir auch die Doku durchgelesen:

$q aber nicht sehr viel verstanden. Ich wäre sehr dankbar, wenn vielleicht jemand in kurzen worten beschreiben könnte, was obere Funktion macht.

Vielen Dank! Hannes