1

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

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

console.log response

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

4

1 回答 1

4

Ajax 是异步的,所以调用时不会设置console.log response响应,在回调函数中使用响应。

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

如何确保脚本在此之后等待,直到 ajax 调用完成,因此它不会继续使用空响应对象?

您应该只在回调函数中进行所有处理,如果您不想这样做,您可以通过在 ajax 选项中将 async 更改为 false 来使 ajax 调用同步

于 2012-09-02T22:20:44.857 回答