2017-06-22 153 views
1

我想下面的代碼來獲取for循環中的一些URL,並添加所有數據在文本變量和for循環完成後,我試圖檢查文本,但它說undefined看起來像ajax調用尚未完成。jquery Ajax等待異步響應

var text; 
    for (i = 0; i < 4; i++) 
    { 
      link=links[i]; 
      $.ajax({ 
      url: scriptLnks, 
      crossDomain: true, 
      dataType: 'text', 
      success: function (result) 
      { 
       text+= result; 
      } 

     }); 
} 
alert(text); 

我希望它只是異步的。請幫忙。

+1

可能重複[如何從異步調用返回響應?](https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-調用) – Andreas

+0

[如何等待,直到jQuery ajax請求在循環中完成?](https://stackoverflow.com/questions/20291366/how-to-wait-until-jquery-ajax-request-finishes-in -一個循環) –

回答

1

嘗試

var text=""; 
var n=4; 
var i=0; 
doRequest(i); 
function doRequest(i) 
     link=links[i]; 
     $.ajax({ 
      url: scriptLnks, 
      crossDomain: true, 
      dataType: 'text', 
      success: function (result) 
      { 
       if(i<n){ 
        text+= result; 
        i++; 
        doRequest(i); 
       }else{ 
        alert(text); 
       } 
      } 

     }); 
} 

希望這有助於!