在我调用服务时获取未定义的数据

时间:2018-03-09 07:08:52

标签: javascript angularjs

所以我有一个问题,我一直试图解决几个小时。

我的问题是我收到的数据比我加载的服务要快。

发电机服务

function genEmpId() {
settingsService.getSettings().then(function (data) {
    var comId = data.data[0].companyId;
    console.log(comId);
    var test = comId + ' - ';
    return test;
});}

控制器

function genId() {
   var data = genService.genEmpId();
   console.log(data); // getting the data too fast how to put a callback ?
}

因此,当我的控制器加载其调用服务但我得到一个未定义的返回值。

1 个答案:

答案 0 :(得分:1)

试试这个,在你的代码中你没有返回任何东西,而另一件事是你的异步调用必须等到它完成。

// gen-service

function genEmpId() {
  return settingsService.getSettings().then(function (data) {
    var comId = data.data[0].companyId;
    console.log(comId);
    var test = comId + ' - ';
    return test;
  });
}

// controller

function genId() {
  var data = genService.genEmpId().then(function (data) {
    console.log(data);
  })
}