业务功能未定义

Service function undefined

本文关键字:未定义 功能 业务      更新时间:2023-09-26

我正在尝试下面的代码

在my services.js中有一个服务是

 .service('AppService', ['$http', 'AuthService', function ($http, AuthService) {
  var getUserData = function(){
  return {
    "fname": "Admin",
    "lname": "ladmin",
    "array" : [{}, {}]
   }
}
return {
  getUserData: getUserData
}
}]);

在控制器中,我有

  AppService.getUserData().then(function(response){
  console.log(response);
}, function(err){
  console.log(err);
})

错误:AppService.getUserData(...).then is not a function

我已经注入了服务。我做错了什么?

你在AppService.getUserData().then(function(response){调用中连接then函数,这意味着你的服务应该返回一个承诺(但这不是你的情况)。

要使代码正常工作,请删除then函数:

var data = AppService.getUserData(); //no promise used, your actual situation.

如果你想使用承诺,保持你的控制器函数不变,并像这样修改你的服务:

.service('AppService', ['$http', 'AuthService', '$q', function ($http, AuthService, $q) {
    getUserData : function(){
       return $q(function(resolve, reject) {
          resolve({
               "fname": "Admin",
               "lname": "ladmin",
               "array" : [{}, {}]
           });
       }
    }       
}]);

这样,您将使用承诺(但在您的示例中不需要它,它是一个带返回的简单调用)