Я часто вижу в Интернете учебные пособия и фрагменты информации о сервисах Angular, чтобы выполнять вызовы $http, которые возвращают как обещание $http, так и некоторые данные. Если промис возвращается контроллеру, какой смысл возвращать данные в сервис? Я даже не понимаю, куда он возвращается. Вот пример того, что я имею в виду:
// Function of MyStuffService:
function getStuff() {
return $http.get('/api/stuff')
.success(function(data) {
// Why return data here? How could I even get this returned value?
return data;
})
.error(function(data) {
console.error(data);
});
}
// Controller:
function getStuff() {
MyStuffService.getStuff()
.success(function(data) {
$scope.stuff = data;
})
}
Разве я не могу просто переписать свою сервисную функцию как:
// Function of MyStuffService:
function getStuff() {
return $http.get('/api/stuff')
.error(function(data) {
console.error(data);
});
}
И позволить контроллеру получить данные из возвращенного промиса? Мне кажется, я чего-то здесь не понимаю. Любая помощь приветствуется.
function getStuff() {return $http.get('/api/stuff');}
в моем сервисе? - person Kevin Salvesen   schedule 26.02.2015success
, он используетthen
, из которого вы действительно можетеreturn
. Следует признать, что функция идентификации не имеет особого смысла в качестве обратного вызова. - person Bergi   schedule 26.02.2015data, status, headers, config
) вместо толькоresult
. Спасибо за помощь. - person Kevin Salvesen   schedule 26.02.2015