javascript - 在AngularJS中的服务中的函数之间传递变量

标签 javascript angularjs

我一直在寻找这个问题的答案,但似乎找不到任何东西。我有一个服务,在第一个 block 中,我成功记录了一个 url,然后需要将其传递到我的 getData() 函数中。但它返回未定义,我尝试了下面的方法,并且尝试将第一个 $http.get 移动到我调用它的 Controller 中,并将第一个 $http.get 移动到getData() 函数。我这一切都错了吗?

di.service('testService', function($http) {
    $http.get('https://us.api.data/tichondrius?locale=en_US&apikey=xxxxxxxx').
    then(function(response) {
        var urlToJsonFileUncut = response.data.files[0].url;
        console.log(urlToJsonFileUncut);
        urlToJsonFile = urlToJsonFileUncut.slice(7);
        console.log(urlToJsonFile);
        return urlToJsonFile;
    });
    this.getData = function(urlToJsonFile) {
        console.log(urlToJsonFile);
        return $http.get('http://localhost:1337/' + urlToJsonFile).
    then(function(response) {
        console.log(response.data.realms[0].name);
        return response.data.realms[0].name;
    });
}});

最佳答案

$http 是一个异步请求。因此,您需要将其链接到第一个请求中,以确保调用第二个请求时第一个响应的值可用。

di.service('testService', function($http) {
  var getData = function () {
    return $http.get('https://us.api.data/tichondrius?locale=en_US&apikey=xxxxxxxx').
    then(function(response) {
      var urlToJsonFileUncut = response.data.files[0].url;
      console.log(urlToJsonFileUncut);
      var urlToJsonFile = urlToJsonFileUncut.slice(7);
      console.log(urlToJsonFile);

      $http.get('http://localhost:1337/' + urlToJsonFile).
      then(function(response) {
        console.log(response.data.realms[0].name);
        return response.data.realms[0].name;
      });
    });
  }

  return { getData: getData; }
});

关于javascript - 在AngularJS中的服务中的函数之间传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40308915/

相关文章:

AngularJS 无法在 Internet Explorer 8 中运行

javascript - Angularfire在$push后获得唯一的id

javascript - 本地比较失败的单元测试

javascript - 动态调整由 KineticJS 框架创建的 HTML5 Canvas 大小

c# - 我怎样才能确保在页面继续之前加载一些js文件

javascript - AngularJS/jQuery - 更新范围

javascript - 使用 Lodash 根据值从 json 获取对象

javascript - 在我的 React 应用程序中,如何在此映射函数中的每个项目后面添加换行符?

javascript - 如何使用 angularjs 在 ng-repeat 中打印 Json 数据?

jquery - Angular 应用程序中的服务注入(inject)错误