(jQuery).when()と.done()で順番に処理を実行しよう!

「この処理の次にこの処理したい!」的な悩みをjQueryで解決!
コールバック関数を設定出来ない.ajax()の処理などのときに便利!

1. .when() →一つ以上のオブジェクト(主に Deferred オブジェクト)を受け取り Promise オブジェクトを生成する。返された Promise オブジェクトに 登録したコールバックは、受け取ったオブジェクトの状態に基づいて実行される。

小難しいことを言っているが。。 要は、.when()は先に終わらせたい処理を書く!

var myPromise = $.when(
    alert(‘部屋の片付け!’);
) ;  

2 . .done() → Deferredオブジェクトがresolveの場合に、実行したいコールバック関数を指定する。

超小難しいことを言っているが。。 要は、.done()は後で実行したい処理を書く!

myPromise.done(function () {
    alert('ケーキを食べる!');    
}) ;

3. メゾットチェーンでつなげる!

$.when(
  $.ajax({
    type: 'GET',
    url: file,
    dataType: 'html',
    success: function(data) {
      $('#directory').html(data);
    },error:function() {
    alert('エラーです');
    }
  })
).done(function() {
  $('#directory_btn').click(function(){
    alert('ボタンが押された');
  });
});