我是javascript和angular的新手。

我创建了一个自定义的 Angular 服务,该服务连接到URL并获取信息。我试图返回reponse.data,而不是仅仅响应

 var getAlldatas = function($http)
    {
      var getuser= function(username){
     $http.get("https://api.github.com/users/"+username).then(function(response{
                 return response.data;
             });
      };
    };

但是,直到我在$ https之前添加return语句,这才起作用,如下所示
var getAlldatas = function($http)
{ var getuser= function(username){
     return $http.get("https://api.github.com/users/"+username).then(function(response{
         return response.data;
     });

  };
};

请帮助我了解为什么需要额外的“return”语句,因为我需要的只是从此函数返回response.data

最佳答案

您只能从所使用的函数中返回。

这意味着,当您使用return response.data时,您仅从回调函数返回。

通过返回$http.get,您也将从getuser函数返回。

(在此示例中,$http.get返回一个promise,因此,通过返回$http.get,您将返回它的promisepromise将包含从回调中返回的任何内容,因此这意味着您可以返回一个包含promiseresponse.data)

10-05 20:51
查看更多