Новичок в Angular, может неправильно использовать промисы. У меня есть фабрика, возвращающая обещание:
.factory('myData', ['$http', '$q', function($http, $q) {
var deferred = $q.defer();
$http.get('/path/to/endpoint')
.success(function(data) {
deferred.resolve(data);
})
.error(function(err) {
deferred.reject(err.what())
});
return deferred.promise;
}])
Теперь, если я куда-нибудь добавлю свою фабрику, я могу использовать обещание:
.controller('myController', ['$scope', 'myData', function($scope, myData) {
myData.then(function(result) {
$scope.data = result;
});
}]);
Это нормально, но я начинаю использовать myData
в нескольких местах и не хочу писать новый .then
в каждой директиве и контроллере, в которых я использую данные. После того, как обещание разрешено, меня это не волнует. больше, есть ли способ заставить myData
возвращать обещание, если оно не разрешено, но возвращать только результат после его завершения?
Другими словами, может ли myData
simple быть .then
result
после разрешения, или мне нужно каждый раз писать новое .then
?