AngularJS工厂返回State对象,而不是promise中的JSON数据
AngularJS factory returning State object instead of JSON data from promise
我已经制作了两个工厂,从第二个工厂调用第一个,在控制器中消费第二个工厂,但不是作为JSON获取数据,而是作为$$State获取数据。我刚接触angularJS,尝试了很多方法都没能解决,请帮忙。
app.factory('userDetails', ['APIService', '$q', function (APIService, $q) {
getDetails: function () {
var deferred = $q.defer();
var getFunc = function () {
APIService.doGetCall('Masters/employee/username/tarun')
.then(
function (data)
{
deferred.resolve(data);
},
function (data, status, headers, config)
{
deferred.reject('There was an error creating object'); })
return deferred.promise;
}
var a = getFunc();
return a;
}
}
vm.user = userDetails.getDetails();
console.log("user",vm.user);
响应如下代码段
所示反应您应该使用.then
函数在那里获得响应。我宁愿说,你不需要创造额外的承诺,这是一个anti-pattern
。其中可以直接利用doGetCall
方法的承诺返回值
app.factory('userDetails', ['APIService', '$q', function(APIService, $q) {
getDetails: function() {
var getFunc = function() {
return APIService.doGetCall('Masters/employee/username/tarun');
}
var a = getFunc();
return a;
}
}]);
vm.user = userDetails.getDetails().then(function(response){
console.log(response.data);
vm.user = response.data;
console.log("user", vm.user);
}, function(error){
console.log(error)
}).catch(exceptionHandler);
userDetails.getDetails()
返回一个承诺,因此您需要使用.then(onsuccess, onRejected)
userDetails.getDetails().then(function(data){
vm.user = data;
console.log("user",vm.user);
});
return deferred.promise;
行在APIService中。doGetCall函数。它应该在它的外面
相关文章:
- 测试Angular Service解决错误回调中的promise
- 显示在promise中$http的DOM中
- 我如何防止错误“;未捕获(在promise中)DOMException:play()请求被对pause()的调用中断&”
- 使用Promise来创建“;原子“;Javascript中的代码块
- $q.all当输入数组中的一项不是promise时,Typescript检查器失败
- 当数组中的某个函数没有返回promise时,我可以使用$q.all吗
- 正在读取angular js promise中的NegotiatedContentResult对象(从WebAPI发送)
- Promise中的递归重试
- 如何访问 promise 中的函数参数
- 带有catch的promise中的错误处理
- Javascript promise中的错误处理
- 如何从控制器调用嵌套在promise中的函数
- 使用promise中的数据更新angular2View/全局变量
- 从promise中的回调中检索数据
- AngularJS工厂返回State对象,而不是promise中的JSON数据
- 在promise中的回调中抛出
- 解析javascript promise中的函数dos'不要始终如一
- 使用fetch w/react js访问返回promise中的对象
- 如何将内部 JSON 分配给 promise 中的对象
- 只保留解决并忽略被拒绝的promise中的值