gpt4 book ai didi

javascript - 变量在函数外不起作用

转载 作者:行者123 更新时间:2023-11-30 11:05:10 25 4
gpt4 key购买 nike

我有一个加载 JSON 文件并将其提供给名为 articles 的变量的函数。当我在函数内部记录文章时,它会显示我的 json 文件,但是当我在函数外部记录它时,它根本不显示任何内容

我曾尝试在函数内部的文章之前使用 let 和 var,但这似乎不起作用

var articles = ""
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if(xmlhttp.status == 200 && xmlhttp.readyState == 4){
articles = xmlhttp.responseText;
console.log(articles);
}
};
console.log(articles);
console.log(xmlhttp);
xmlhttp.open("GET","articles.json",true);
xmlhttp.send();

我希望能够通过使用文章在我的函数之外调用我的 json 文件,这样我就不必每次都输入 xml.responseText。

最佳答案

简而言之,JavaScript 不会同步等待 I/O 操作完成(在本例中为网络调用)。

这意味着当您“在函数之外”记录文章时,文章变量尚未设置(http 请求尚未完成)。

您为什么希望在全局范围内访问文章?

在 http 请求响应后,您可以选择将文章传递给处理方法,如下所示:


var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if(xmlhttp.status == 200 && xmlhttp.readyState == 4){
var articles = xmlhttp.responseText;
processArticles(articles)
}
};
xmlhttp.open("GET","articles.json",true);
xmlhttp.send();

function processArticles(articles) {
// Do something with articles here
}

关于javascript - 变量在函数外不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55961903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com