javascript - ajax success 方法内部不能给方法外部变量赋值的问题
巴扎黑
巴扎黑 2017-04-11 12:24:39
[JavaScript讨论组]

如上图,我加上了cache:false 和async:false ,但是最后获取到的level的值还是为空,请问是什么情况?

巴扎黑
巴扎黑

全部回复(5)
PHP中文网

返回defer对象不好么

天蓬老师

个人认为对于ajax这种请求,应当采用回掉函数的形式返回

巴扎黑

在执行 getLevel 的时候,发送了一个 Ajax 请求,然后执行return level,这个时候不论 ajax 是否已经成功,sucess 的回调函数都不会执行。因为,JS 是单线程的。所以 return level 返回空字符串(这个时候 level 还是初始值)。

当Ajax 成功了,就会给,level 赋值,但是这个时候你已经访问不到level

你所不懂的问题是:基本类型和引用类型的区别;JS 异步是什么意思。

大家讲道理

建议先看下开发者工具,返回的代码是什么,有没有返回数据,有的话内容是什么。

大家讲道理

异步得到的答案,在success方法里面使用就好了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号