У вас есть прототип объекта Foo с двумя вызовами асинхронного метода, bar и baz.
var bob = new Foo()
Foo.prototype.bar = function land(callback) {
setTimeout(function() {
callback()
console.log('bar');
}, 3000);
};
Foo.prototype.baz = function land(callback) {
setTimeout(function() {
callback()
console.log('baz');
}, 3000);
};
Мы хотим сделать bob.bar(). Baz() и последовательно записывать "bar" и "baz".
Если вы не можете изменять вызовы метода (включая передачу в функции обратного вызова), как вы можете передать обратный вызов по умолчанию в эти вызовы методов?
Некоторые идеи:
-
Оберните "боб" с помощью декоратора (все еще нечеткое о том, как реализовать, можно использовать небольшой пример)
-
Измените конструктор, чтобы назначить обратный вызов по умолчанию, если ни один не назначен (не считал, возможно ли это или нет)
-
Использовать оболочку генератора, которая будет продолжать вызов следующего метода до тех пор, пока ничего не останется?