2017-06-02 1 views
0

Ich rufe die AJAX-Anfrage an und bekomme das Ergebnis, aber bis zu diesem Zeitpunkt wird die nächste Codezeile gestartet. Ich möchte halten, bis der AJAX-Erfolgsblock ausgeführt wurde.Warten bis die AJAX-Anfrage in ExtJS fertig ist

PFB das Code-Snippet.

Ext.Ajax.request({ 
    url: PORTALURL.EXCEPTION.MAX_VALUE, 
    success: function(response) { 
     var maxValue = Ext.decode(response.responseText); 
     if (grid.getSelectionModel().getSelection().length > maxValue) { 
      Ext.Msg.alert('Alert!', type + ' count is more than 10'); 
      return; 
     } 
    } 
}); 

CommonUtil.alertConfirm(msg, function() { 
.. } 

In obigem Code. Bevor die AJAX-Anfrage abgeschlossen und das Popup-Fenster mit der Alarmmeldung angezeigt wird, wird alertConfirm aufgerufen.

Kann jemand dabei helfen.

+1

Welche Hilfe? Fügen Sie diese Anweisung direkt in den Erfolgsblock ein. –

+0

@HarshitShah Der folgende alertConfirm ist nicht auf die obige AJAX-Anfrage angewiesen. Das ist eine andere Funktionalität. –

+0

Sie sagen also, dass Sie diese Warnung manchmal aufrufen müssen, obwohl der Erfolgsblock nicht ausgeführt wird und manchmal, wie Sie gefragt haben, Sie möchten, dass er nach der Ausführung des Erfolgsblocks ausgeführt wird? –

Antwort

2

Um zu warten, bis Ajax antwortet, rufen Sie diese Funktion am besten vom Erfolgsblock ab. Also wird der Code aufgerufen, nachdem die Ajax-Antwort ihn bekommen hat.

Ext.Ajax.request({ 
    url: PORTALURL.EXCEPTION.MAX_VALUE, 
    success: function(response) { 
     var maxValue = Ext.decode(response.responseText); 
     if (grid.getSelectionModel().getSelection().length > maxValue) { 
      Ext.Msg.alert('Alert!', type + ' count is more than 10'); 
      return; 
     } 

     // Call the required function which needs to be executed after ajax response. 
     CommonUtil.alertConfirm(msg, function() { 
     .. } 
    } 
}); 
Verwandte Themen