在angular中,当我们尝试从自定义服务

时间:2017-11-04 07:59:04

标签: javascript angular http

我是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

2 个答案:

答案 0 :(得分:2)

您只能从您所在的功能返回。

这意味着,当您-E时,您只是从回调函数返回。

返回return response.data,您也会从$http.get函数返回。

(在此示例中,getuser返回$http.get,因此返回promise后,您将返回$http.getpromise将包含任何内容从回调中返回,这意味着您可以返回包含promise)的promise

答案 1 :(得分:1)

此处getAlldatas& $http.get用于分隔函数。$http.getthen处理回调函数的方法。

return response.data;返回请求的响应,但该请求尚未到达调用getAlldatas的函数。外部return函数用于将该数据发送回调用函数。除非使用外return,否则getAlldatas将始终返回未定义的