javascript - AngularJS:类型错误:无法读取未定义的属性 'then'

标签 javascript angularjs promise

首先,我是 Angular 的新手。我准备了一些 Web Api,我想从中获取一些数据。 我的服务功能获取日期(工作正常):

var _getRole = function () {
    $http.get(serviceBase + 'api/User/CurrentUserRoles').then(function (results) {
        return results;
    });
};

和 Controller :

var role = [];
authService.getRole().then(function (results) {
     role = results.data;...

在 Controller 的这个函数中我得到异常:

TypeError: Cannot read property 'then' of undefined
at n.$scope.login (http://localhost/.../app/controllers/loginController.js:27:30)
at ib.functionCall (http://localhost/.../Scripts/angular.min.js:199:303)
at Ec.(anonymous function).compile.d.on.f (http://localhost/.../Scripts/angular.min.js:216:74)
at n.$get.n.$eval (http://localhost/.../Scripts/angular.min.js:126:15)
at n.$get.n.$apply (http://localhost/.../Scripts/angular.min.js:126:241)
at HTMLButtonElement.<anonymous> (http://localhost/.../Scripts/angular.min.js:216:126)
at HTMLButtonElement.c (http://localhost/.../Scripts/angular.min.js:32:389)

请帮忙。谢谢。

最佳答案

您需要从 $http 返回自身的函数返回 promise 。

代码

var _getRole = function () {
    return $http.get(serviceBase + 'api/User/CurrentUserRoles');
};

关于javascript - AngularJS:类型错误:无法读取未定义的属性 'then',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30005790/

相关文章:

javascript - 有没有办法在温泉中创建可滚动对话框

javascript - ajax 请求数据未加载 - Angular JS

javascript - Promise.all() 解析,但它不应该(node.js)

javascript - promise resolution 如何决定将返回值视为 promise 还是普通值?

javascript - 如何使用 useEffect() 更改 React-Hook-Form defaultValue?

javascript - 从 javascript 调用 rails 函数

javascript - 是否可以在 Angularjs 中的 div 滚动中触发事件?

javascript - AngularJS:创建一个能够使用 $scope 的自定义对象

javascript - 为什么 ngResource 在收到响应后将保存的对象修改为这个 : g {0: "O", 1 : "K", ..}

javascript - 在 javascript 中使用 firebase firestore 更新功能中的 promise