2012-10-27 94 views
1

我有一個代碼,我正在調用一個函數,該函數有Ajax請求,所以它需要一點時間執行..但同時我的下一行代碼執行..我想停止下一行代碼執行,直到我的第一行代碼執行...等待一個函數的響應Extjs

這裏是我的代碼 -

RWM.util.AjaxRequest.getPost(val); 

    alert('d'); 

和內部AjaxRequestclass我有getPost函數獲取 -

getPost: function(postno) { 

    Ext.Ajax.request(

     { 

     url: 'data/php/postnumber.php?mode=getById' 

      ,method: 'GET' 

      ,params: { 
       postno: postno 
      } 

      ,success: function(response) { 
       alert('s'); 

    } 

    }); 
} 

所以在這裏我想執行警報('s')然後警報('d')

任何想法?

+0

我發現我的自我 - RWM.util.AjaxRequest.getPost(val); setTimeout(function(){alert('d');},500); – Kanchan

+2

這不是答案......如果您的Ajax請求花費的時間超過0.5秒,該怎麼辦? – sha

+1

請閱讀「回調」 –

回答

0

alert('d');在回調塊尼爾·麥圭根建議:

RWM.util.AjaxRequest.getPost(val, function() { alert('d'); }); 

getPost: function(postno, callback) { 
    Ext.Ajax.request({ 
     url: 'data/php/postnumber.php?mode=getById' 
     ,method: 'GET' 
     ,params: { 
      postno: postno 
     } 
     ,success: function(response) { 
      alert('s'); 
      callback(); 
     } 
    }); 
} 

看一看sample on Ext Forum