Я пытаюсь реализовать очередь асинхронных методов в Javascript, как показано в этом сообщении в блоге
Вот что у меня есть:
function Queue() {
this._methods = [];
this._response = null;
this._flushed = false;
}
(function(Q){
Q.add = function (fn) {
if (this._flushed) fn(this._response);
else this._methods.push(fn);
}
Q.flush = function (response) {
if (this._flushed) return;
this._response = response;
while (this._methods[0]) {
this._methods.shift()(response);
}
this._flushed = true;
}
})(Queue.prototype);
Я могуКажется, он не работает так, как рекламируется, хотя код выглядит для меня правильным.Когда я вызываю функцию сброса, я получаю this._methods is undefined
в строке while (this._methods[0]) {
.