時間差処理
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(); }