如何将文本文件内容保存到Javascript变量? [英] How to save text file contents to Javascript variable?
问题描述
我正在尝试读取超过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
事件异步返回结果.您可以使用回调或Promise
将FileReader
的result
返回到processFileContent
.同样,位于readFile
的file
将是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屋!