我的getData
工厂正在返回.json文件中的人物对象列表。
.factory('people', ['$q', function($q) {
function getData() {
var deferred = $q.defer();
if (event.type == 'exception') {
//deferred.reject(result);
} else {
deferred.resolve(require('../../../mocks/people.json'));
}
return deferred.promise;
}
var that = {
getData: getData
};
return that;
}]);
在我的组件中,我在浏览器中将其输出到控制台,因为您可以看到我必须深入了解Promise以查找值。
我错过了工厂的一步吗?我想只返回我的json文件中包含的数据,如果可能的话,我想避免像在我的组件中做console.log(Promise.$$state.value)
这样的事情。
我正在返回有角度的Promise,我是否需要以某种方式调整它才能看到数据?
答案 0 :(得分:1)
你需要解决你的承诺:
var myApp = angular.module('myApp', []);
myApp.factory('people', ['$q', '$timeout', function($q, $timeout) {
return that = {
getData: function getData() {
var deferred = $q.defer();
if (event.type == 'exception') {
//deferred.reject(result);
} else {
$timeout(function () {
deferred.resolve({
'some': 'Data'
});
}, 500);
}
return deferred.promise;
}
};
}]);
myApp.controller('MyCtrl', function(people) {
people.getData().then((result) => {
console.log(result)
})
});
<强>&GT; Demo fiddle 强>