`var a =1;
function setA(){ $.get('http://localhost/','a=2',function(ret){
return ret.a;
});}`Wie kann man die Funktion setA dazu bringen, den mit Ajax erhaltenen Wert von ret.a zurückzugeben?
走同样的路,发现不同的人生
两种方式1:ajax改成同步,可以直接获取正确的return的返回值。2:ajax回调中直接添加你的处理逻辑
给getA加个函数的参数callback,然后在ajax返回值里用callback(set.a)。z在使用getA时这样访问到set.a:getA(function(a){console.log(a)})
示例如下:
var a =1; function setA(callback){ $.get('http://localhost/','a=2',function(ret){ callback(ret.a); }); } setA(function(a) { console.log('a:' + a) })
var a; $.get('http://localhost/','a=2',function(ret){ setA(ret.a); }); function setA(value){ a=value; } function getA(){ return a; }
在setA里使用一个临时变量存储,setA里面的AJAX使用同步请求,成功后将值存在临时变量中,然后由setA返回临时变量
setA
setA() { var temp = ''; $.get({ url: 'http://localhost/', data: {a: 2}, async: false, success: function(ret) { temp = ret.a; return ; } }); return temp; }
两种方式
1:ajax改成同步,可以直接获取正确的return的返回值。
2:ajax回调中直接添加你的处理逻辑
给getA加个函数的参数callback,然后在ajax返回值里用callback(set.a)。
z在使用getA时这样访问到set.a:getA(function(a){console.log(a)})
示例如下:
在
setA
里使用一个临时变量存储,setA
里面的AJAX使用同步请求,成功后将值存在临时变量中,然后由setA
返回临时变量