Как в angularjs из Factory выудить объект Promise
Вот пример того, что я пытался реализовать
есть такая фабрика:
export default app.factory('mainFactory', $http => {
return {
getConfig: (cr) => $http({ method: 'GET', url: '/main-conf' }).then(res => cr = res.data, error => console.log(error))
}
});
Далее контроллер в котором я хочу эти данные использовать
import app from '../../main-module/index.js';
export default app.controller('mainCtrl', [
'$scope',
'$http',
'mainFactory',
'$window',
($scope, $http, mainFactory, $window) => {
$scope.reloadRoute = () => $window.location.reload();
$scope.mainFactory = mainFactory;
console.log('$scope.mainFactory', $scope.mainFactory.getConfig($scope.mainConf2));
}
]);
В итоге получаю вот такое
а если реализовать все в котроллере то все ок
пример
import app from '../../main-module/index.js';
export default app.controller('mainCtrl', [
'$scope',
'$http',
'mainFactory',
'$window',
($scope, $http, mainFactory, $window) => {
$scope.reloadRoute = () => $window.location.reload();
$scope.mainConf;
$http({ method: 'GET', url: '/main-conf' }).then(res => $scope.mainConf = res.data, error => console.log(error));
console.log('$scope.mainConf', $scope.mainConf);
}
]);
результат
Что я делаю не так? Как мне в первом примере получить результат второго примера? Благодарю заранее
Источник: Stack Overflow на русском