У меня есть требование, чтобы некоторые функции вызывались после завершения выполнения какого-либо метода.
Ниже приведен мой код обработки очереди.
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
не относится к основному классу в этом случае.
Так что кто-нибудь может мне помочь здесь.Как я могу решить эту проблему?