【发布时间】:2016-09-24 00:25:12
【问题描述】:
我有以下代码可以使用回调进行异步 ajax 调用。
我的第一个主要问题是,当我使用回调函数 setA、setB、... 进行数据操作时,ajax 调用的返回值并不总是存在,并且我结束了对来自“dataFromAjax”的未识别变量的操作。只有当我知道我在 dataFromAjax['firstCall'] 中有一些由函数 setA 设置的数据时,有没有办法在 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;
}
【问题讨论】:
标签: javascript jquery ajax asynchronous callback