Ajax请求中给全局变量赋值的解决方案

前端之家收集整理的这篇文章主要介绍了Ajax请求中给全局变量赋值的解决方案前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_0@昨天PP遇到一个问题,ajax修改全局变量后,外面获取不到ajax里赋的值,结果为空

@H_301_0@问题代码如下图:

@H_301_0@输出结果如下图:

@H_301_0@原因:

@H_301_0@先在控制台看看是ajax先被打印还是你的undefined先被打印,如果是undefined先被打印,则可以参考以下原因与解决方案:

@H_301_0@$.ajax默认是异步的,异步回调在js主线程执行结束后才会被执行。所以先执行console.log(该变量),再执行ajax中的回调函数。所以后面的console.log执行时,该变量还没有被ajax赋值,所以是undefind。

@H_301_0@解决方案:

@H_301_0@如果确实需要获取ajax的结果赋值给该变量,那么可以ajax多加一个参数:async=false,就会同步执行。

猜你在找的Ajax相关文章