javascript - 如何将变量设置为 AJAX 响应数据?

标签 javascript jquery ajax function scope

我正在使用 jQuery,并且我有以下代码:

var result = [];

if ( some_condition ) {
  result = [...]
} else {
  $.ajax({
    url:      some_url,
    data:     some_data,
    dataType: 'json',
    success:  function(data) {
      items = data
    }
  });

  result = items
}

// Playing with the 'result' variable...

some_conditionfalse 时,上面的代码会生成错误“items is not Defined”(我认为发生这种情况是因为变量作用域是不正确)。

我想将 result 变量设置为 AJAX 响应数据,但我不知道如何解决该问题。

<小时/>

注意:我尝试这样做是因为我想在 if ... 之外使用 result 变量外部 else 语句(即上述代码中的 if ... else 语句之后)。

最佳答案

简单地使ajax函数不异步

var result = [];

if ( some_condition ) {
  result = [...]
} else {
    $.ajax({
    url:      some_url,
    data:     some_data,
    dataType: 'json',
    async: false, 
    success:  function(data) {
        items = data
    }
    });
   result = items
}

关于javascript - 如何将变量设置为 AJAX 响应数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13523127/

相关文章:

ajax - 使用 Jquery 和 Ajax 每 X 秒刷新一次部分页面?

ajax - 在 golang 中提供多个静态文件并发出 post 请求

java - GWT:编辑树项目的文本

javascript - 如何使用 babel-loader 转换 node_modules 模块?

javascript - 如何拥有一个持久复选框,每次在 JQuery 中选中时都会打开或关闭 div?

javascript - 检测无序列表中的换行符

javascript - 如何/是否重写异步 :false AJAX function?

javascript - 为什么useSelector里面的选择器会运行两次?

javascript - 我不明白 JavaScript 中的 this 关键字

javascript - SlideToggle() 无法正常工作