Angular 7 / Typescript:创建方法的队列/数组

时间:2018-12-04 10:31:37

标签: arrays angular typescript

我有一个要求,在某些方法完成执行之后,应调用某些函数。

下面是我处理队列的代码。

 processQueue() {
    while (this.queue.length) {
      var item = this.queue.shift();
      item.resolve(item.func(item.types));
    }
  }

这是在队列中推送方法的示例函数之一

 getAllValues() {
    let promise1 = new Promise((resolve, reject) => {
      if (this.isReady) {
        resolve(this._getAllValues());
      } else {
        this.queue.push({
          resolve: resolve,
          func: this._getAllValues
        });
      }
    });
    return promise1;
  }

这是在处理队列时将调用的功能之一

 _getAllValues() {
    var results = {}, values = this.enumInstance.enumsCache.values;
    for (var type in values) {
      if (values.hasOwnProperty(type)) {
        results[type] = values[type][this.enumInstance.lang];
      }
    }
    return results;
  }

我面临的问题是,当我直接致电_getAllValues()时,我才能访问this.enumInstance。 但是,当通过processQueue()访问相同方法时,我将无法访问this.enumInstance。它给了我undefined。我认为在这种情况下,this没有被引用到主类。

任何人都可以在这里帮助我。我该如何解决?

0 个答案:

没有答案