首页 新闻 会员 周边

能不能用js闭包获取ajax回调函数的返回值

0
悬赏园豆:10 [已关闭问题] 关闭于 2012-04-20 14:33

var a = 0;

$.ajax({ type: "get",

dataType: "json",

async: true(为了测试,这里必须是true)

url: "student_toadd",

data:{stunum:10},

success:function(data){ a = 10;}

});

alert(a);    ajax

ajax的返回值是10,但是弹出的是0,因为没在回调里面,怎么在$.ajax({里面写闭包函数,这样我可以直接把函数值返回给a

< >
分享
所有回答(4)
0

没看明白 您想干啥

八戒的师傅 | 园豆:1472 (小虾三级) | 2012-04-01 13:51
1

a的值是在回调函数执行以后赋值的,而alert(a);的执行在

success:function(data){ a = 10;}

});

这个之前。

ajax的执行顺序是发送了请求到服务器以后,接着执行后面的代码,等待服务器返回以后,才开始执行回调函数里面的内容的,将代码改为如下,应该能满足你的要求。

var a = 0;

$.ajax({ type: "get",

dataType: "json",

async: true(为了测试,这里必须是true)

url: "student_toadd",

data:{stunum:10},

success:function(data){ a = 10;

alert(a);

}

});

只要是等待服务器返回以后才能处理的操作都要放到回调函数里面处理。

 

希望对你有帮助。


水晶途途 | 园豆:1443 (小虾三级) | 2012-04-01 14:56
0

这个是没有任何问题的。出现这种情况是你的ajax出现了问题。可以在success中试着弹出。楼上正解。

lucika.zh | 园豆:62 (初学一级) | 2012-04-02 19:29
0

楼上几位朋友没有明白楼主的意图!

我也有楼主这样的想法(即在ajax异步执行的情况下,利用闭包解决回调问题)所以搜索到这个帖子里来啦!!

牧者 | 园豆:204 (菜鸟二级) | 2016-06-08 17:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册