我正在尝试创建一个包含变量的角度服务,该变量将在另一个服务调用的结果之后设置。这是代码:
angular.module("someApp",[]).service("someServiceName", function() {
var myVar = undefined;
this.get = function() {
if (myVar) {
return myVar
} else {
console.error('Error text');
}
}
var init = function () {
anotherService.call().then(function (result) {
myVar = result;
});
};
init();
});
当我在应用程序加载后第一次调用 someServiceName.get()时,它不返回任何内容(因为myVar尚未填充)。但是在下一次服务调用时,如果myVar变量,则返回值。 所以,我的问题是如何在 someServiceName.get()调用后返回 myVar 但是先运行 init()?
答案 0 :(得分:0)
在 anotherService.call()结束之前,您可能正在调用 someServiceName.get();这会给你未定义。
怎么样:
f
在这种情况下,每次想要获得他的价值时,你都会想起 anotherService 。