2017-09-18 4 views
0

Ich brauche hier mit diesem Code etwas Hilfe getan werden:Aufruf eine JS-Funktion innerhalb einer anderen Funktion, wenn sie

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

Wenn ich diesen Code ausführen die Funktionen sind in Ordnung, aber die console.log() erscheint, wenn die function1 beendet ist, aber Ich möchte nur zeigen, wenn function2 endet.

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

Können Sie Ihr Problem sowie das, was 'function1' und' function2' tun tun? –

+0

@GhassenLouhaichi laden sie meine Seite, Funktion1 lädt eine Listbox mit meinen Kunden, und Funktion2 lädt eine Tabelle –

+0

finden Sie die Zeit, um die Antwort zu überprüfen. –

Antwort

0

Verwenden Sie den vollständigen Parameter Funktion 2

 function2(){ 

      $.ajax({ 
        url: '/Controller/Method', 
        type: 'GET', 
        complete: function() { 
          console.log("test"); 
        } 
       }); 
     } 
0

Ihre Lösung wird nicht funktionieren, weil Ihre beiden Funktionen nichts zurückgeben (in anderen Worten, sie zurückkehren undefined), so dass die $.get Anruf leer ist und nutzlos. Was Sie tun müssen, ist etwas wie das Folgende:

// 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"); 
    }); 
}); 
Verwandte Themen