我正在使用CoffeeScript和jQuery,尝试从存储在局部变量中的ajax调用中获取数据,因此我可以在其余的方法中使用它。这是我现有的代码:
response = null
$.ajax
url: '/polygons'
dataType: 'json'
success: (data, textStatus, jqHXR) ->
response = data
console.log response
使用此代码,响应始终保持为空。我想要做的就是从成功函数和调用方法中获取数据变量,但我似乎无法将其从该范围中删除。我在这里做错了什么?
答案 0 :(得分:4)
Ajax是异步的,因此在调用console.log response
时不会设置响应,在回调函数中使用响应。
response = null
$.ajax
url: '/polygons'
dataType: 'json'
success: (data, textStatus, jqHXR) ->
response = data
console.log response
如何确保脚本在此之后等待,直到ajax调用完成,因此它不会继续使用null响应对象?
您应该在回调函数中执行所有处理,如果您不想这样做,可以通过在ajax选项中将async更改为false来使ajax调用同步