【发布时间】:2019-08-11 17:15:49
【问题描述】:
我有一个要求,我需要在 Angular 1 中创建一个服务,并使用可以在控制器中访问的 API 调用加载数据。我之前尝试过使用 $http 服务进行 API 调用并将数据分配给变量/对象。然后我注入服务并将变量/对象分配给控制器范围变量/对象。
我在控制器事件循环中观察到的与服务事件循环不同,并且控制器范围变量/对象仍未定义。后来我通过从服务返回一个promise,并在控制器中调用promise,得到了一个解决方案,但是我是promise的新手,当我调用promise时无法完全吸收,我必须将函数传递为我认为这是 $http API 调用的回调,但我不确定它是如何在后台工作的。谁能解释一下?
//service code
this.getuserimages = function(uname) {
console.log("Username in UserImage Service: " + uname);
var promise = $http.get('/api/images/' + uname).then(function(response) {
this.userimages = response.data;
return this.userimages;
});
return promise;
}
// controller code
var userimagespromise = userImageService.getuserimages($routeParams.username);
userimagespromise.then(function(data) {
$scope.userimages = data;
【问题讨论】:
标签: promise