Javascript 调用服务时获取未定义的数据
所以我有一个问题,几个小时来我一直想解决 我的问题是,我获取数据的速度比加载服务的速度快 发电机服务Javascript 调用服务时获取未定义的数据,javascript,angularjs,Javascript,Angularjs,所以我有一个问题,几个小时来我一直想解决 我的问题是,我获取数据的速度比加载服务的速度快 发电机服务 function genEmpId() { settingsService.getSettings().then(function (data) { var comId = data.data[0].companyId; console.log(comId); var test = comId + ' - '; return test; });} 控制器 fun
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 ?
}
因此,当我的控制器加载它调用的服务,但我得到一个未定义的返回值时。试试这个,在你的代码中你没有返回任何东西,另一件事是它对你的异步调用必须等到它完成
// 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);
})
}
genEmpId
没有返回任何内容。只是一件小事,您的服务是否包含在控制器之前?我已经尝试过,它只适用于$http
请求。您可以添加设置服务。getSettings()
函数。您可以看到getEmpId
函数并不是一个承诺。你怎么能等它解决呢@RahulSharma@UsmanRana我将从genEmpId函数返回另一个函数承诺。所以它会一直等到它解决。谢谢,我不知道它为什么有效??我错过了设置服务的第一次退货。对不起。