所以我有一个问题,我一直试图解决几个小时。
我的问题是我收到的数据比我加载的服务要快。
发电机服务
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 ?
}
因此,当我的控制器加载其调用服务但我得到一个未定义的返回值。
答案 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);
})
}