我想循環一個數組如果是結果,將這個結果推入一個javascript數組,並將其從每個循環和ajax調用中取出。怎麼樣?推送到jQuery數組每個循環和jQuery ajax調用
我想是這樣的:
var ides = ["2254365", "2255017", "2254288", "2220745", "2254452", "2255239", "2232426", "2255143", "2248513", "2254295", "2233629", "2238651", "2254901", "2238430", "2239471", "2255294", "2217888", "2242302", "2242310", "2220380", "56121236", "2255244", "2235716", "2246897"];
var iArray = [];
$.each(ides, function(index, woide) {
$.ajax({
url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20=%20" + woide + "&format=json",
dataType: 'json',
success: function(data) {
if (data.query.results != null) {
iArray.push(woide+': '+data.query.results.channel.item.condition.code);
}
}
})
})
console.log(iArray); //this don't work
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
因爲它在每個循環結束後立即運行。它不會等待ajax調用完成。 – Jai
AJAX是一個異步調用,因此當您在成功/錯誤回調之外執行代碼時,它可能尚未完成。 –