2016-05-17 50 views
0

我有下面的代碼時,它同步,我傳遞參數給它如何將參數傳遞給jquery異步json?

function getValues(itemid){ 
     var parsedpage = $.ajax({ 
      cache  : false, 
      async  : false, 
      url   : "http://cors.io/?u=http://cata.openwow.com/item="+itemid, 
      dataType : "text", 
     }); 
    return parsedpage.responseText; 
} 
getValues(70266); 
getValues(70378); 
getValues(70268); 

有更多getValues調用導致加載時間長和用戶體驗差,只有與Tampermonkey工作,想我應該重構它的工作同步,如果我將async:false更改爲async:true該代碼不適用於循環18個數字的循環。它必須以responseText作爲html代碼這樣做,因爲網站並不真正支持json,或者我無法找到它,因爲它根本沒有記錄。

如何重寫我的函數以工作異步?我讀過How do I return the response from an asynchronous call?但不包括通過我自己的函數參數

+0

看起來像你需要一個'promise()' – Derek

+0

jQuery''.when''就足夠了嗎? –

+0

是的,它應該是 – Derek

回答

-1

好吧,我設法與添加功能爲succes: Ajax來解決這個問題,並得到了我所需要的

function getValues(itemid){ 
    $.ajax({ 
     cache  : false, 
     async  : true, 
     url   : "http://cors.io/?u=http://cata.openwow.com/item="+itemid, 
     dataType : "text", 
     success: function (data) { 
      var parsedpage = data; 
     }, 
    }); 
} 
+0

你不能從異步調用 – epascarello

+0

返回哦,是的,有回報的行根本不需要 –