javascript - 我的 JSON.parse 有什么问题,为什么代码没有按出现的顺序执行?

标签 javascript jquery json ajax

我正在使用 PHP 导入一些数据,PHP 从 SQL 数据库获取数据。我正在使用 AJAX 将数据从 PHP 导入到 Javascript。 PHP 代码工作正常,结果为“2”,但我的 Javascript 代码有问题:

<script>
    $.getJSON("Kategorie1.php", function (data) {
        window.nrFragen = JSON.parse(data);
        window.alert(data)
    });
    window.alert(window.nrFragen);
</script>

如果我运行它,它首先运行 window.alert(window.nrFragen)哪个警报 undefined然后window.alert(data) ,它应该提醒“2”。

为什么它首先运行window.alert(window.nrFragen) ,即使它写在 window.alert(data) 之后?而且,为什么不是 window.nrFragen = JSON.parse(data);工作?

最佳答案

$.getJSON是异步的。

$.getJSON("Kategorie1.php", function (data) {
    //this will be called only after request completion
    window.nrFragen = JSON.parse(data);
    window.alert(data)
});
//this will be called immediately after $.getJSON, it won't wait for request completion
window.alert(window.nrFragen);

关于javascript - 我的 JSON.parse 有什么问题,为什么代码没有按出现的顺序执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32950191/

相关文章:

java - 如何在 REST 响应中检索 JSON 数组格式的结果

javascript - 使用变量引用数组中的 JSON 元素不起作用

javascript - 无法读取未定义的属性 'getHours'

javascript - 有什么方法可以使用 js 清除浏览器缓存,至少是我的域相关文件?

javascript - 动态限制iOS数字输入中的特殊字符

javascript - 将字符串传递给razor中的javascript函数

jquery - 删除悬停样式?

javascript - 选择列表中的 HTML 复选框

javascript - 如何在 Nest js 中遍历 @Query() 对象

jquery - 为什么 Validator jQuery 插件不使用此配置进行验证?