=============================================
簡単&低機能なものを作りました。
使い方
chain()とnextだけ覚えて下さい
var img,img2;
chain( function( next ){
img = new Image();
img.onload = next;
img.src = "http://dummyimage.com/600x400/000/fff";
})
.chain( function( next ){
img2 = new Image();
img2.onload = next;
img2.src = "http://dummyimage.com/600x400/000/fff";
})
.chain( function( next ){
setTimeout( next, 1000 );
})
.chain( function( next ){
console.log( "img,img2が読み込まれて1秒たった" );
});
ライブラリ
(function(){
// TODO 綺麗にする
var Chain = function(){
this._func = arguments.length==1? arguments[0]: arguments[1];
this._next = function(){};
this._parent = arguments.length==1? null: arguments[0];
if( this._parent ) return;
setTimeout((function(){
this._exec();
}).bind(this),0);
};
Chain.prototype = {
_exec: function(){
this._func( (function(){ this._next(); }).bind(this) );
},
chain: function( func ){
var chain = new Chain( this, func );
this._next = function(){ chain._exec(); };
return chain;
}
};
window.chain = function( func ){ return new Chain(func); }
})();