У меня есть сервис для пользователей. Я хотел бы создать метод, который использует другую службу, которую я создал. На этой службе есть два метода. getUser()
и getCurrentUser()
. getCurrentUser()
использует введенную услугу, которая получает UID. Он использует возвращаемый UID для запуска метода getUser()
. Моя проблема в том, что я не могу получить getCurrentUser()
, чтобы вернуть обещание второго уровня.AngularJS: Возвращение обещания изнутри.
Этот вопрос немного сложно объяснить. Вот код ...
svs.service("usersService", function($rootScope, $http, loginService, alertBoxService) {
var self = this;
self.getUser = function(identifier, column) {
if (typeof(column) === 'undefined') column = "uid";
return $http.get($rootScope.api + "/getUser/" + identifier + "/" + column);
}
self.getCurrentUser = function() {
var currentUserPromise;
loginService.getCurrentUid().then(
function(response) {
if (response.data === "false") {
alertBoxService.trigger($rootScope.unexpectedApiResponse);
} else {
console.log(self.getUser(response.data));
currentUserPromise = self.getUser(response.data);
}
}, function(response) {
alertBoxService.trigger($rootScope.asyncFailed);
}
);
return currentUserPromise;
}
});
[Да, конечно] (http://stackoverflow.com/q/23667086/1048572). Но вам не нужна эта переменная! – Bergi