CoffeeScript:将来自jQuery Ajax调用的数据存储在变量中

时间:2012-09-02 22:17:52

标签: jquery ajax coffeescript

我正在使用CoffeeScript和jQuery,尝试从存储在局部变量中的ajax调用中获取数据,因此我可以在其余的方法中使用它。这是我现有的代码:

response = null
$.ajax
  url: '/polygons'
  dataType: 'json'
  success: (data, textStatus, jqHXR) ->
    response = data

console.log response

使用此代码,响应始终保持为空。我想要做的就是从成功函数和调用方法中获取数据变量,但我似乎无法将其从该范围中删除。我在这里做错了什么?

1 个答案:

答案 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调用同步