Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自定义服务调用失败_Javascript_Angularjs_Plunker - Fatal编程技术网

Javascript 自定义服务调用失败

Javascript 自定义服务调用失败,javascript,angularjs,plunker,Javascript,Angularjs,Plunker,我一直在关注PluralSight的在线教程,了解如何使用Angular,但其中一些信息似乎已经过时 我已经到了创建定制服务的部分,并且完全遵循了教程,但是我的定制服务将无法正常工作 当我尝试调用我的github服务时,它似乎失败了,它似乎无法正确地返回到script.js.then()handler forgithub.getUser() 它的砰砰声就在这里 有人能告诉我这里缺少什么吗?如果您只是想让它工作,下面是如何修复它: 您的第二个选项是向服务上的$http添加一个返回,如下所示: va

我一直在关注PluralSight的在线教程,了解如何使用Angular,但其中一些信息似乎已经过时

我已经到了创建定制服务的部分,并且完全遵循了教程,但是我的定制服务将无法正常工作

当我尝试调用我的github服务时,它似乎失败了,它似乎无法正确地返回到script.js
.then()
handler for
github.getUser()

它的砰砰声就在这里


有人能告诉我这里缺少什么吗?

如果您只是想让它工作,下面是如何修复它:

您的第二个选项是向服务上的
$http
添加一个返回,如下所示:

var getUser = function(username) {
  return $http.get("https://api.github.com/users/" + username)
    .then(function(response) {
      return response.data;
    });
};
请注意,您只是忘记了$http之前的第一个“return”。其余的都很好

解决这个问题的更好方法是不要在服务内部解决您的承诺。这样,您就可以获得精简服务,并可以在控制器内随心所欲地管理数据

因此,我将您的getUser更改为:

var getUser = function(username) {
  return $http.get("https://api.github.com/users/" + username);
};
这样,它将从
$http
返回整个承诺。由于我删除了您的“包装器”,我还需要修改您的
onUserComplete()

var onUserComplete = function(result) {
  $scope.user = result.data;
  github.getRepos($scope.user).then(onRepos, onError);
};

这是一个有效的工具:

ahhh在丢失的返回物上捡拾得非常好,我现在可以使用了:)谢谢你的帮助!