encadeando chamadas de método assíncrono - javascript
Você tem um objeto de protótipo Foo com duas chamadas de método assíncronas, bar e 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);
};
Queremos fazer bob.bar (). Baz () e fazer com que ele registre "bar" e "baz" sequencialmente.
Se você não pode modificar as chamadas de método (incluindo a passagem de sua função de retorno de chamada), como você pode passar um retorno de chamada padrão para essas chamadas de método?
Algumas ideias:
Enrole "bob" com o decorador (ainda confuso sobre como implementar, poderia usar um pequeno exemplo)
Modifique o construtor para atribuir retorno de chamada padrão se nenhum atribuído (não considerou se isso é possível ou não)
Use um invólucro de gerador que continuará a chamar o próximo método até que nenhum seja deixado?