加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – Angular TypeError:无法读取未定义的属性’then’

发布时间:2020-12-17 07:39:22 所属栏目:安全 来源:网络整理
导读:我有一个这样的数据服务: this.myFunction= function(callback) { var url = rootURL + "path1/path2/service.json"; var promise = $http.get(url); promise.then(function(payload){ return callback(payload); }); return promise; } 在控制器中调用它来
我有一个这样的数据服务:
this.myFunction= function(callback) {
    var url = rootURL + "path1/path2/service.json";
    var promise = $http.get(url);
    promise.then(function(payload){
        return callback(payload); 
    });
    return promise; 
}

在控制器中调用它来初始化一些东西:

DataService.myFunction(function(data) { 
    if(data.statusText !== "OK"){
        $scope.$worked= false; 
    }else{  
        $scope.$worked= true;               
    }
}

并且我得到“TypeError:无法读取属性’然后’undefined”.回调中的Console.log(数据)显示200“OK”响应和我期望的数据.我已经搜索了这个错误,主要是因为没有退回服务中的承诺.但是,我退回了承诺.在回调中设置控制器范围上的任何内容会导致错误.

Angular版本:AngularJS v1.3.0-rc.2

谢谢!

在这种情况下,您不需要返回承诺,因为您正在使用回调.回调和承诺是频谱的两端.你可以用这个完成你想要的.

如果要使用回调,可以留下您的控制器代码.

this.myFunction= function(callback) {
    var url = rootURL + "path1/path2/service.json";
    $http.get(url).then(function(response) {
        callback(response.data);
    });
}

或者如果你想利用这些承诺

this.myFunction= function() {
    var url = rootURL + "path1/path2/service.json";
    return $http.get(url).then(function(response) {
        return response.data;
    });
}

DataService.myFunction().then(function(data) { 
    if(data.statusText !== "OK"){
        $scope.$worked = false; 
    } else {  
        $scope.$worked = true;               
    }
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读