setTimeout(function() {
// 処理
setTimeout(function() {
// 処理
setTimeout(function() {
// 見た目がキモいので避けたい
}, 200);
}, 100);
}, 300);
キモい。
毎回待ち時間が違うsetTimeoutを連続で呼びたいのですが...。
ライブラリなし、ES5で動くコードでもっと綺麗にしたいです。
てことでこんなコード書いてみました。
var TimerSetter = function(){
this.waitMsec = 0;
};
TimerSetter.prototype = {
wait: function(func, msec) {
this.waitMsec += msec;
setTimeout(func, this.waitMsec);
return this;
}
};
// .....
var time = new TimerSetter();
time.wait(function () {
// 処理
}, 200)
.wait(function () {
// 処理
}, 100)
.wait(function () {
// 処理
}, 300)
コード量が増えるのと、実際に実行している内容が変わってるんだけど(全てのsetTimeoutをほぼ同時に実行している)特に問題は起きてません。
でもなんか良くない気もします。
このコードどうでしょうか。