gpt4 book ai didi

javascript - 读取本地文本文件函数不返回字符串类型,而是返回 void 类型

转载 作者:行者123 更新时间:2023-12-02 15:11:54 24 4
gpt4 key购买 nike

我最近在学习JavaScript,发现了这个问题,我的readTextFile函数在这里:

function readTextFile(file)
{
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function ()
{
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status === 0)
{
var allText = rawFile.responseText;
// alert(allText);
return allText;
}
}
};
rawFile.send(null);
}

还有我的 onload 函数:

window.onload = function(){
var fileUrl = "input.txt";
var text = "";
text = String(readTextFile(fileUrl));
window.alert(text);
};

输出是“未定义”。我的“input.txt”文件与js文件位于同一目录中。请帮忙!非常感谢。

最佳答案

readTextFile 方法具有异步 ajax 调用,该调用具有回调处理程序 onreadystatechange,该回调处理程序不会以顺序方式调用。

此方法 readTextFile 不会在此回调方法之外返回任何值,因此您在这里未定义 text = String(readTextFile(fileUrl));

您需要在 onreadystatechange 回调方法中提醒响应值。

function readTextFile(file)
{
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function ()
{
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status === 0)
{
var allText = rawFile.responseText;
alert(allText);
}
}
};
rawFile.send(null);
}

关于javascript - 读取本地文本文件函数不返回字符串类型,而是返回 void 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34761689/

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