我有一个要求,在某些方法完成执行之后,应调用某些函数。
下面是我处理队列的代码。
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
没有被引用到主类。
任何人都可以在这里帮助我。我该如何解决?