時間差処理
javascript jQuery Deferred delay
時間差で処理を実行
順番に行うアニメーション等、時間差をつけて処理を実行したい場合の対応方法の一つ
各処理を作成
◆ 条件
処理1:proc01
divにクラス「class-a」を追加
処理後、1秒のdelayをいれる
処理2:proc02
pにクラス「class-b」を追加
function proc01 {
var d = new $.Deferred;
$('div').addClass('class-a').delay(1000).queue(function () {
d.resolve();
});
return d.promise();
}
function proc02() {
var d = new $.Deferred;
$('p').addClass('class-b').queue(function () {
d.resolve();
});
return d.promise();
}
処理をつなげる
proc01().then(proc02);
引数を渡したい場合
function startAmin(arg) {
amin01(arg).then(amin02)
}
function amin01(arg) {
var d = new $.Deferred();
setTimeout(function(){
/*処理*/
d.resolve(arg);
}, 500);
return d.promise();
}
function amin02(arg) {
var d = new $.Deferred();
setTimeout(function () {
/*処理*/
d.resolve(arg);
}, 500);
return d.promise();
}