Javascript 为什么我要获取TypeError:onSuccess不是angularjs服务中的函数
我有一个angularjs服务,它利用restangular打电话 角度模块('app.userSvc',[]) .factory('userSvc',['localStorageService','$rootScope','Restangular',', 函数(localStorageService、$rootScope、restanglar){ 函数checkIfLoggedIn(){ 返回localStorage.getItem('token'); } 功能登录(电子邮件、密码、onSuccess、onError){ Restangular.all('api/authenticate') .邮政({ 电邮:电邮,, 密码:密码 }) .那么( 功能(响应){ localStorage.setItem('token',response.token); 成功(响应); }, 功能(响应){ onError(响应); }); } 函数注销(){ localStorageService.remove('token'); } 函数getCurrentToken(){ 返回localStorage.getItem('token'); } 函数getAuthenticatedUser(onSuccess,onError){ Restangular.one('api/authenticated_user?token='+getCurrentToken()).get().then(函数(响应){ onSuccess(response.user); },功能(回应){ onError(响应); }); } Restangular.setDefaultHeaders({ “授权”:“承载者”+getCurrentToken() }); 返回{ checkIfLoggedIn:checkIfLoggedIn, 登录:登录, 注销:注销, getCurrentToken:getCurrentToken, getAuthenticatedUser:getAuthenticatedUser }; } ]); 但是当我在控制器中调用userSvc.getAuthenticatedUser()方法时,我得到了TypeError:onSuccess不是一个函数 这就是我所说的Javascript 为什么我要获取TypeError:onSuccess不是angularjs服务中的函数,javascript,angularjs,Javascript,Angularjs,我有一个angularjs服务,它利用restangular打电话 角度模块('app.userSvc',[]) .factory('userSvc',['localStorageService','$rootScope','Restangular',', 函数(localStorageService、$rootScope、restanglar){ 函数checkIfLoggedIn(){ 返回localStorage.getItem('token'); } 功能登录(电子邮件、密码、onSuc
console.log(userSvc.getAuthenticatedUser());
我做错了什么。我使用的是angular 1.6您必须将回调函数设置为第一个参数,因为在
getAuthenticatedUser()
中,没有检查是否设置了onSuccess
参数。(onError回调实际上也是如此,因此您也需要提供第二个参数)
因此,要么在getAuthenticatedUser
函数中实现这样一个检查(例如onSuccess&&onSuccess()
),要么提供一个回调函数(即使它是一个匿名函数,对任何东西都不起作用),以防止出现该错误
userSvc.getAuthenticatedUser(function() {}, function() {});
必须将回调函数设置为第一个参数,因为在
getAuthenticatedUser()
中,没有检查是否设置了onSuccess
参数。(onError回调实际上也是如此,因此您也需要提供第二个参数)
因此,要么在getAuthenticatedUser
函数中实现这样一个检查(例如onSuccess&&onSuccess()
),要么提供一个回调函数(即使它是一个匿名函数,对任何东西都不起作用),以防止出现该错误
userSvc.getAuthenticatedUser(function() {}, function() {});
错误是预期的,因为您的服务方法预期回调方法,所以请传递它们
function getAuthenticatedUser(onSuccess, onError){
}
因此,您需要传递回调方法
userSvc.getAuthenticatedUser(function() {}, function() {})
或者,您可以检查参数是否已定义,以及
错误是预期的,因为您的服务方法预期回调方法,所以请传递它们
function getAuthenticatedUser(onSuccess, onError){
}
因此,您需要传递回调方法
userSvc.getAuthenticatedUser(function() {}, function() {})
或者,您可以检查参数是否已定义,以及