首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从文本文件返回值

无法从文本文件返回值
EN

Stack Overflow用户
提问于 2020-01-22 02:17:33
回答 1查看 267关注 0票数 0

我无法从文本文件中返回值,并且当我试图返回记事本值时会收到一个错误,

错误:未定义未定义的ReferenceError: txtData

代码语言:javascript
运行
复制
   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..')  
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-22 02:29:00

当您用let txtData='';声明变量时,它的作用域仅限于声明它的块--这就是let关键字的语义。因此,变量在else {...}块之外不可用。

然而,这里还有一个更深层次的问题。您在异步事件处理程序中将一个值分配给txtData;因此,如果不使其异步,或者等待处理程序运行(这将使其同步),就无法从readTextFile函数返回该值。我鼓励您在JS中阅读关于异步编程的MDN教程

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59851738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档