如何将文本文件内容保存到Javascript变量
How to save text file contents to Javascript variable?
我正在尝试读取超过150,000行文本的文本文件。我希望能够读取文本文件并将其作为processFileContent的参数传递。
我试过这种方式,但它不起作用。此外,对于如此大的数据,是否有更好的方法来做到这一点?
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
。另外,file
在readFile
处将是event
对象,而不是event.target
的.files
属性。
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');
...
你的问题之一是作用域。您在onload
事件处理程序中将data
声明为局部变量,并尝试从外部函数返回它,其中它是undefined
。要解决这个问题,需要将变量声明移出事件处理程序。
您也期望文件作为事件处理程序的参数,但是事件将Event
对象传递给它们的事件处理程序。要获取该文件,您需要获取event.target.files[0]
。这应该可以修复它。
function readFile(event) {
var file = event.target.files[0]; // getting the file Blob
var reader = new FileReader();
var data; // moved declaration
reader.onload = function (evt) {
data = evt.target.result;
};
reader.readAsText(file);
return data;
}
相关文章:
- 正在保存JavaScript内部回调函数中的值
- 如何保存javascript变量
- 如何保存Javascript变量
- 在几个浏览会话中保存javascript变量
- Chrome开发工具:保存javascript状态
- 保存 Javascript 变量以供以后使用
- 如何保存 JavaScript 变量并使用 jQuery 将它们传递到下一页
- 克隆 jQuery 对象并在其中保存 JavaScript 对象时,如何访问内容
- 保存JavaScript Cookie网站基础,而不是ASPX页面明智
- 使用jquery保存javascript对象并从数据库传递ID
- 在HTML中嵌入JavaScript或从外部保存JavaScript有哪些优点和缺点
- 在服务器上保存javascript变量
- 创建一个类来保存javascript中的全局变量
- 在Vim中保存JavaScript文件时出错
- 如何保存JavaScript日期'从浏览器到服务器,再返回的时区
- 谷歌选项页面未保存-Javascript
- 使用C#异步Postback保存Javascript值
- 使用HTML5本地stoarage来保存Javascript数组
- 浏览器如何保存JavaScript库
- 需要帮助保存javascript中onclick函数中的文件