我只是想问一下$ http和承诺的用法,我似乎对如何正确使用它有一个问题,我已准备好一些线程和指导如何实现,我可能误解了它但这里是什么我做到了。我保持尽可能简单,以便我掌握它。
this.getAll = function(){
var details = [];
var deffered = $q.defer();
var promise = $http.get('../test_data/patient_list.json');
promise.then(function(response){
$log.debug(response.data);
angular.copy(response.data, details);
details = response.data
});
return details;
};
在promise.then()
数据期间确实存在,但是当promise.then
调用details
为空时我尝试将其复制到另一个数组时。怎么会?我现在有点困惑,任何人都可以指出或教我如何正确处理$http
答案 0 :(得分:1)
this.getAll = function(){
var details = [];
var deffered = $q.defer();
var promise = $http.get('../test_data/patient_list.json');
return promise.then(function(response){
$log.debug(response.data);
angular.copy(response.data, details);
details = response.data
return details;
});
};
您必须返回承诺,然后在.then()
块内返回详细信息。
您还可以执行以下操作:
this.getAll = function(){
return $http.get('../test_data/patient_list.json')
.then(function (response) {
return response.data
});
}