jquery 问题求解

2016-07-15 09:12:51 +08:00
 CTO
最近遇到一个问题,如下:
var a = false;
$(function(){
$.post('地址',function(data){
a = data; //此处 data 为 true
})
console.log(a);//仍然是 false 第二次才会变成 true
})
如题 怎样第一次就输出 a = true ?
1399 次点击
所在节点    问与答
7 条回复
phying
2016-07-15 09:19:34 +08:00
$.post('地址',function(data){
a = data; //此处 data 为 true
console.log(a);
})
hxsf
2016-07-15 09:21:35 +08:00
异步
wuhuaji
2016-07-15 09:32:22 +08:00
a 等于 data 那一句,需要等服务器返回数据之后才会执行,你 post 里的函数也就是传说中的回调函数,而此时最后一行的 a 早已打印,当然是 false 了。

建议看看 js 异步编程的概念。
liudanning
2016-07-15 10:23:16 +08:00
ID 好腻害啊~
jugelizi
2016-07-15 10:23:56 +08:00
明显不懂 js 的执行流程
lele140
2016-07-15 10:44:21 +08:00
$.post 改成同步操作
CTO
2016-07-15 10:44:25 +08:00
@wuhuaji thx 已经解决

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/292623

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX