代码之家  ›  专栏  ›  技术社区  ›  lemoncodes

Angular JS$http承诺[重复]

  •  0
  • lemoncodes  · 技术社区  · 10 年前

    我只是想问一下$http和promise的用法,我似乎在理解如何正确使用它方面有问题,我已经准备了一些关于如何实现的线程和指南,我可能误解了它,但下面是我所做的。我把它尽量简单,以便我能掌握它。

    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 回复  |  直到 10 年前
        1
  •  1
  •   Jideobi Benedine Ofomah    10 年前
    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
      });
    }