当前位置: 首页 > 知识库问答 >
问题:

读取文本文件内容Javascript[重复]

长孙弘壮
2023-03-14

我想访问“onload”功能之外的文件内容。我知道这与异步有关。下面是我的js函数:

function testZ() {
var entireFile = document.getElementById("input").files[0];
var reader = new FileReader();
reader.readAsText(entireFile, "UTF-8");
reader.onload = function (e) {
    var rawLog = reader.result;
    console.log(rawLog);
};

// access to file content

谢谢大家!

共有1个答案

杜鸿彩
2023-03-14

传统上,您可以使用这样的回调模式

function testZ(cb) {
    var entireFile = document.getElementById("input").files[0];
    var reader = new FileReader();
    reader.readAsText(entireFile, "UTF-8");
    reader.onload = function (e) {
        var rawLog = reader.result;
        cb(rawLog);
    };
}

testZ(contents => {
    // contents accessible here
})

或者,您可以使用Promises和async/await使代码看起来更像同步代码

function testZ() {
    return new Promise((resolve, reject) => {
        var entireFile = document.getElementById("input").files[0];
        var reader = new FileReader();
        reader.readAsText(entireFile, "UTF-8");
        reader.onload = () => resolve(reader.result);
        reader.onerror = reject;
    });
};
(async() => {
    const contents = await testZ();
    // contents accessible here
})();

注意:如果你在一个函数中,则不需要异步IIFE,只需使该函数异步 - 通常需要注意的是,该函数现在返回一个 Promise,所以不要指望它会产生同步结果

async someFunction() {
    const fileContent = await testZ();
    // contents accessible here
}

此外,顶级await在模块中可用-因此,在这种情况下根本不需要async函数-简单地说:

const fileContent = await testZ();
// contents accessible here
 类似资料:
  • 我想从我的本地html文件中读取一个本地文本文件,所以我尝试遵循这个线程中的解决方案JavaScript-Read local text file,但建议的解决方案对我也不起作用: 当我调用函数时,在firebug中不会出现错误,但也不会显示警报。我使用Windows和Firefox51.0.1(64位)。我不想将函数与按钮

  • 我试着用JS读txt文件。所以我用这个代码。 我的txt文件看起来: 当我输入代码:时,我的程序工作得很好,但我想用ip Adres打开txt文件。 但是我的应用程序不能读取txt文件。

  • 逐行读取文本文件的内容,每次一行(比 FileReadLine 执行的更好)。 Loop, Read, InputFile [, OutputFile] 参数 Read 此参数必须为单词 READ. InputFile 需要在循环中读取内容的文本文件的名称, 如果未指定绝对路径则假定在 %A_WorkingDir% 中. 支持 Windows 和 Unix 格式; 即文件的行结束符可以是回车和换行

  • 本文向大家介绍javascript结合ajax读取txt文件内容,包括了javascript结合ajax读取txt文件内容的使用技巧和注意事项,需要的朋友参考一下 代码很简洁,这里就不多废话了,直接上源码 html代码 javascript代码 请求的文件为read.txt 内容随便填写

  • 问题内容: 我正在尝试通过创建一个接受文件路径并将文本的每一行转换为char数组的函数来编写一个简单的文本文件阅读器,但是它不起作用。 这是怎么了? 从先前的版本中稍稍更改了代码后,这似乎仍然不起作用,现在给了我一个例外101。 我已经在Firefox上对其进行了测试,并且可以工作,但是在Google Chrome中它却无法工作,并且一直给我一个异常101。如何使它不仅可以在Firefox上而且还