我有一個例子通過ajax獲取數據並做一些事情。條件是這個函數可以重用。可以隨時打電話。處理ajax同步?
<script type="text/javascript">
function getData(value1,value2){
$.ajax({
url: URL,
data:{
email:value1,
age:value2
},
async:false,
dataType: "json",
type: "get",
success: function(data){
var result;
result = data.result;
console.log("result:"+result);
},
error: function(){
}
});
};
var data;
data = getData("email","age");
console.log("data:"+data);
</script>
當我調用ajax時,結果返回後來數據empty.I嘗試使用async false,但只是在AJAX內部確定。
如何做JavaScript等待響應,不再執行,得到響應,然後繼續執行。設置超時不是個好主意,因爲它會導致不同服務器和服務器上的服務器響應速度問題向不同客戶端發出問題
* Syncrhonous的XMLHttpRequest已被棄用的主線程的,因爲其所帶來的影響最終用戶的體驗* - 而不是遠離異步代碼,學會使用它。注意:在你的代碼中,'getData'不返回任何東西,這就是爲什麼'data'沒有定義的原因 –
將'var result;'移動到'getData'的頂部...在'getData'的底部添加'return結果;' –
如果您想要一個包含**異步**請求的答案 - 請參閱https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call - 它看起來像你最初嘗試異步請求和採取同步,因爲你不能異步工作 –