Angular JS $ http承诺

时间:2016-07-31 08:44:40

标签: angularjs angular-promise

我只是想问一下$ 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

上的数据

1 个答案:

答案 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
  });
}