如何将文本文件内容保存到Javascript变量? [英] How to save text file contents to Javascript variable?

查看:135
本文介绍了如何将文本文件内容保存到Javascript变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试读取超过150,000行文本的文本文件.我希望能够读取文本文件并将其作为processFileContent的参数传递.

I'm trying to read a text file of over 150,000 lines of text. I want to be able to read the text file and pass it as a parameter for processFileContent.

我以这种方式尝试过,但是没有用.另外,对于这样的大数据,是否有更好的方法呢?

I tried it this way, but it doesn't work. Also, is there a better way to do this for such big data?

function readFile(file) {
  var reader = new FileReader();
  reader.onload = function (evt) {
    var data = evt.target.result;
};
  reader.readAsText(file);
  return data;
}

document.getElementById('file').addEventListener('change', readFile, false);

var data = readFile();

function processFileContent(data) {
  var list = data.split('\n');
  ...

推荐答案

FileReader.onload事件异步返回结果.您可以使用回调或PromiseFileReaderresult返回到processFileContent.同样,位于readFilefile将是event对象,而不是event.target.files属性.

FileReader.onload event returns results asynchronously. You can use a callback or Promise to return result of FileReader to processFileContent. Also file at readFile would be event object, not .files property of event.target.

function readFile(event) {
  var file = event.target.files[0];
  if (file) {
    new Promise(function(resolve, reject) {
      var reader = new FileReader();
      reader.onload = function (evt) {
        resolve(evt.target.result);
      };
      reader.readAsText(file);
      reader.onerror = reject;
    })
    .then(processFileContent)
    .catch(function(err) {
      console.log(err)
    });
  }
}

document.getElementById('file')
.addEventListener('change', readFile, false);

function processFileContent(data) {
  var list = data.split('\n');
  ...

这篇关于如何将文本文件内容保存到Javascript变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆