我有以下一段代碼,使用回調進行異步ajax調用。如何處理來自多個異步調用異步調用回調的數據?
我的第一個主要問題是,當我使用回調函數setA,setB,...執行數據操作時,從ajax調用返回的值並不總是存在,我結束對來自「dataFromAjax」的未識別變量進行操作。只有當我知道我在函數setA設置的dataFromAjax ['firstCall']中有一些數據時,是否有方法在setB中執行操作?
第二個問題是否有一種方法可以簡化代碼,而無需爲每個數據操作創建新的成功函數?
dataFromAjax = {};
function makeACall(url,successCallBack,errorCallback){
$.ajax({
type: 'GET',
async: true,
url: url,
success: successCallBack,
error: errorCallback
});
}
makeACall(url,setA,errorAjax)
makeACall(url,setB,errorAjax)
makeACall(url,setC,errorAjax)
makeACall(url,setD,errorAjax)
function setA(ajaxData){
dataFromAjax['firstCall'] = ajaxData;
}
function setB(ajaxData){
dataFromAjax['secondCall'] = dataFromAjax['firstCall'] + ajaxData;
}
function setC(ajaxData){
dataFromAjax['thirdCall'] = dataFromAjax['secondCall']/ajaxData;
}
非常有趣,我會測試它。 –
非常好的例子,正是我正在尋找。 –