我如何在我的代码中只使用1个ajax函数,只有当ajax完成时才会返回数据 例如:
var Jurl = json.php, Jdata='one:AAA';
jsonRet = json(Jurl, Jdata);
if(jsonRet) {
$('body').prepend(data);
} else {
Jurl = anotherJson2.php;
Jdata='one:BBB';
jsonRet2 = json(Jurl,Jdata);
if(jsonRet2) {
...
}
}
json(Jurl, Jdata) {
$.getJSON(Jurl, {Jdata} , function(data) {
if(data ==='finish') {
return false;
} else {
return data;
}
}
但是,我无法使用此代码,我必须使用jsonRet2创建另一个(一个)函数。所以代码不会优化......我想要最少的代码。
答案 0 :(得分:0)
你有语法错误,就是这样。
if(data['end']===true) { ... }
修改强>
您还需要使用承诺从异步调用中返回值,请参阅以下示例:
$.getJSON(Jurl, {Jdata} , function(data) {
var dfd = $.Deferred();
if(data['end']==='true') {
dfd.reject(false);
} else {
dfd.resolve(data);
}
return dfd.promise();
});