JavaScript 无法检索 FileReader 变量
JavaScript can't retrieve FileReader variable
我正在尝试从 .CSV 文件中的记录中检索特定字段。我无法在 onload 函数之后访问 record
变量。
var record;
//FileReader to read contents of CSV
var reader = new FileReader();
var file = document.getElementById('csvFileUploadID').files[0];
reader.onload = function(event) {
reader.readAsText(document.getElementById('csvFileUploadID').files[0]);
record = reader.result.split(/\r\n|\r|\n/)[1];
record = record.split(',')[1]
};
//Can't access the 'record' variable here.
我知道这个问题的解决方案可能与关闭有关,但是,我不能完全理解这个概念。
感谢任何帮助。
您可以使用 promises 来处理这种异步代码。
var file = document.getElementById('csvFileUploadID').files[0];
function readRecord(file) {
return new Promise(function(resolve, reject) {
var reader = new FileReader();
reader.onload = function(event) {
reader.readAsText(document.getElementById('csvFileUploadID').files[0]);
record = reader.result.split(/\r\n|\r|\n/)[1];
record = record.split(',')[1];
resolve(record);
};
});
};
readRecord(file).then(function(record) {
// access record here
});
我正在尝试从 .CSV 文件中的记录中检索特定字段。我无法在 onload 函数之后访问 record
变量。
var record;
//FileReader to read contents of CSV
var reader = new FileReader();
var file = document.getElementById('csvFileUploadID').files[0];
reader.onload = function(event) {
reader.readAsText(document.getElementById('csvFileUploadID').files[0]);
record = reader.result.split(/\r\n|\r|\n/)[1];
record = record.split(',')[1]
};
//Can't access the 'record' variable here.
我知道这个问题的解决方案可能与关闭有关,但是,我不能完全理解这个概念。
感谢任何帮助。
您可以使用 promises 来处理这种异步代码。
var file = document.getElementById('csvFileUploadID').files[0];
function readRecord(file) {
return new Promise(function(resolve, reject) {
var reader = new FileReader();
reader.onload = function(event) {
reader.readAsText(document.getElementById('csvFileUploadID').files[0]);
record = reader.result.split(/\r\n|\r|\n/)[1];
record = record.split(',')[1];
resolve(record);
};
});
};
readRecord(file).then(function(record) {
// access record here
});