所以,你外面的变量赋值,还没有等请求值返回,就已经执行了。
你只需要在getJSON请求之前,设置同步请求就行了:$.ajaxSettings.async = false
这段代码是有个误区的 完全可以这么做出现问题的原因是因为 getJSON方法是异步的 也就是说 它并不会卡主后面的 *** 作
因为Ajax请求是有一定消耗时间的所以运行顺序应该是
1 定义了数组
2 执行getJSON
3 最后一行的consoleLog
4 Ajax请求返回 busStopData赋值 然后再consoleLog
避免的方法有很多
你可以在回调的时候 再触发另一个方法来执行你想做的 *** 作
也可以在后面写一个等待逻辑 判断是否正常返回了(或者异常返回了) 等待到了数据再使用
或者使用$.ajax 设置同步属性为同步执行(好好看看ajax可以设置的属性)也可以
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)