变量填充后的角度服务调用

时间:2018-03-19 21:47:37

标签: angularjs promise lazy-loading angular-promise angular-services

我正在尝试创建一个包含变量的角度服务,该变量将在另一个服务调用的结果之后设置。这是代码:

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()

1 个答案:

答案 0 :(得分:0)

anotherService.call()结束之前,您可能正在调用 someServiceName.get();这会给你未定义

怎么样:

f

在这种情况下,每次想要获得他的价值时,你都会想起 anotherService