javascript - 使用ajax在ajax语句之外获取值

标签 javascript jquery ajax

我有一个 javascript,在其中使用 ajax 来获取值。 但是当我想在 ajax 语句之外使用该值时,它不起作用。

我的代码:

var value;
$.get("ajaxstatus.php",
  {id: id})
.done(function(data) {
  value = data
  alert('inner' + data)
});
alert('outer' + value)

内部警报只给我从ajax返回的值,但是当我想使用外部警报中的值时,它是空的,因为它尚未分配。 当我使用 ajax post 而不是 get 时,我遇到了完全相同的问题。

如何获取从 ajax 语句返回的值(也在其外部)?

最佳答案

Javascript 是异步的,这意味着在可能的情况下,它在评估代码时不会阻止处理。因此,虽然您的 ajax 调用可能需要一些时间才能返回,但 javascript 会一直处理您的代码直至结束。当您的 AJAX 调用最终返回时,它会触发一个回调,即 .done()

所以...

$.get("ajaxstatus.php",
  {id: id})
.done(function(data){
  doWork(data);
});

function doWork(data) {
  alert('after' + data);
};

关于javascript - 使用ajax在ajax语句之外获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51549074/

相关文章:

jquery - 需要有关在鼠标悬停时滚动 ul 元素的帮助

javascript - jquery 展开/折叠所有元素

javascript - 表单自动提交无需刷新

javascript - 如何使用 angularjs 填充 json 数据?

javascript - 删除html表格行最后一个单元格的内容

javascript - 全日历: 'eventAfterRender' 工作不正常

javascript - 如果一个变量大于或等于另一个变量,如何更改文本颜色?

javascript - 基于调查 ID 的 Limesurvey 条件

javascript - 防止表单在提交时刷新 - Ajax Call Angular JS

javascript - 使用 JavaScript/JQuery 将 html 表格数据导出到 Excel 在 chrome 浏览器中无法正常工作