我无法从文本文件中返回值,并且当我试图返回记事本值时会收到一个错误,
错误:未定义未定义的ReferenceError: txtData
function readTextFile(file)
{
//let txtData='';
var rawFile = new XMLHttpRequest();
rawFile.open("GET", "textFiles/"+file, true);
rawFile.onload = function (){
if(this.status===200){
console.log(this.responseText);
let txtData= String(this.responseText);
}
else{
let txtData='';
}
}
rawFile.send();
return txtData;
}
var taskStatus=readTextFile("file1.txt")
if(taskStatus==='complete')
{
console.log('completed..')
}
else{
console.log('Not completed..')
}
发布于 2020-01-21 18:29:00
当您用let txtData='';
声明变量时,它的作用域仅限于声明它的块--这就是let
关键字的语义。因此,变量在else {...}
块之外不可用。
然而,这里还有一个更深层次的问题。您在异步事件处理程序中将一个值分配给txtData
;因此,如果不使其异步,或者等待处理程序运行(这将使其同步),就无法从readTextFile
函数返回该值。我鼓励您在JS中阅读关于异步编程的MDN教程。
https://stackoverflow.com/questions/59851738
复制