2017-09-18 5 views
0

をやっているとき、私はこのコードをここにいくつかの助けを必要とする別の関数内のJS関数を呼び出す:彼らは

$.get(function1()).done(function(){ 
    $.get(function2()).done(function(){ 
     console.log("test");       
    }); 
}); 

私はこのコードを実行すると機能は大丈夫ですが、console.log()function1が終了したときに表示されますが、 function2が終了したときにのみ表示したいです。

function function1() { 
    $.ajax(
     { 
     type: "GET", 
     url: "<?=baseURL;?>/server/null/list_user_customers", 
     async: true, 
     success: function(data) { 

      data = $.parseJSON(data); 
       // Create a deferred object 
      var dfd = $.Deferred(); 
      dfd; 
     } 
    }); 
} 
function function2() { 
    $.ajax(
     { 
     type: "GET", 
     var url = "<?=baseURL;?>/logbook/null/reload_tickets?customer_id=" + $("#customer_select option:selected").val(); 
     async: true, 
     success: function(data) { 

      data = $.parseJSON(data); 
       // Create a deferred object 
      var dfd = $.Deferred(); 
      dfd; 
     } 
    }); 
} 
+4

あなたの問題を詳述するだけでなく、 'function1'と' function2'がやっていることを含めることができますか? –

+0

@GhassenLouhaichi彼らは私のページを読み込み、function1は顧客とリストボックスをロードし、function2はテーブルをロードします –

+0

答えを確認する時間を見つけてください。 –

答えて

0

あなたの機能の両方が何も返さない(言い換えれば、彼らはundefinedを返す)ので$.get呼び出しが空であるため、機能2

 function2(){ 

      $.ajax({ 
        url: '/Controller/Method', 
        type: 'GET', 
        complete: function() { 
          console.log("test"); 
        } 
       }); 
     } 
あなたのソリューションが動作しません
0

に完全なパラメータを使用し、役に立たない。あなたがする必要があるのは、次のようなものです:

// your two functions return the promises they create 
function function1() { 
    return $.ajax({ 
     // config... 
    }); 
} 
function function2() { 
    return $.ajax({ 
     // config... 
    }); 
} 

// your main code only needs to execute those functions 
// and manipulate the promises they return 
function1().done(function() { 
    function2().done(function() { 
     console.log("test"); 
    }); 
});