Сообщение от FINoM
|
Лишний метод. Если человек хочет запустить цепь потом, проще сделать так:
w = function(){
return wait(...).wait(...)
}
w();
|
А как по поводу такого? Он не лишний, он позволяет делать так:
var chain = function () {};
chain.prototype.deferred = [];
chain.prototype.add = function (fn) {
this.deferred.push(fn);
return this;
}
chain.prototype.next = function () {
if (this.deferred.length) {
this.deferred.shift().apply(this);
}
}
chain.prototype.start = function () {
this.deferred.shift().apply(this);
}
var a = new chain().
add(function(){
var self = this;
setTimeout(function () {
console.log(1);
self.next();
}, 1000);
}).
add( function(){
var self = this;
setTimeout(function () {
console.log(2);
self.next();
}, 1000);
}).
add( function(){
console.log(3);
this.next();
});
setTimeout(function(){
console.log('добавим чего-нибудь в цепь');
a.add(function(){
console.log(4);
}).start();
},2000);
Сообщение от FINoM
|
Я сперва тоже так думал, но
var self = this;
тоже кажется излишним.
|
С этим пока не знаю что делать, может забить?
Сообщение от FINoM
|
+ у тебя теряется целостность. Если последний коллбек сработал, следующие звенья не запустятся.
|
Можно пример? Не понимаю.