4
我想調用一個循環內的多個API(例如:$ .each)。我可以使用async:false
模式執行此操作,但會使腳本滯後。如何在同步模式下實現這一點?只要忽略async
選項,只會將list
中的最後一個元素髮送到api調用。JQuery中每個循環內的多個異步Ajax調用
$.each(lists, function(index, value) {
channel = lists[index].channel;
list = lists[index].list;
$.ajax({
url : 'api.php?list=' + list + '&from=' + from + '&to=' + to,
dataType : 'json',
async : false,
success : function(data) {
obj = data;
$.ajax({
url : 'api.php?list=' + list + '&from=' + from + '&to=' + to + '&action=sender',
dataType : 'json',
async : false,
success : function(data) {
obj['senders'] = data.msg;
CommonContainer.inlineClient.publish(channel, obj);
}
});
}
});
});
http://stackoverflow.com/questions/13250746/process-chain-of-functions-without-ui-塊/ 13252018#13252018 – slebetman
你的意思是什麼讓只有最後一個發送到API調用?看_.after可能是有用的,你可以創建一個函數,它會被調用X次後運行。如果我正在製作5個AJAX調用並希望某些內容能夠成功運行,那麼我會使用它。 - 如果你想要一個例子讓我知道,我可以一起扔 –
我不同意重複。這裏的問題是一個聲明bug使關閉無法保護變量。 –