【问题标题】:CoffeeScript: store data from jQuery Ajax call in variableCoffeeScript:将来自 jQuery Ajax 调用的数据存储在变量中
【发布时间】:2012-08-27 17:43:12
【问题描述】:

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

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

console.log response

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

【问题讨论】:

    标签: jquery ajax coffeescript


    【解决方案1】:

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

    【讨论】:

    • 好的,那么我如何确保脚本在此之后等待,直到 ajax 调用完成,所以它不会继续使用 null 响应对象?
    • 您应该只在回调函数中完成所有处理,如果您不想这样做,您可以通过在 ajax 选项中将 async 更改为 false 来使 ajax 调用同步。
    • 使用async: false 可以解决这种特殊情况下的所有问题。谢谢!
    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多