我使用JS FileReader.我希望在文件读取操作后获得结果并使用此数据.FileReader是异步的,我不知道结果何时准备就绪.如何正确完成?
$(document).ready(function(){
$('#file_input').on('change', function(e){
var res = readFile(this.files[0]);
//my some manipulate with res
$('#output_field').text(res);
});
});
function readFile(file){
var reader = new FileReader(),
result = 'empty';
reader.onload = function(e)
{
result = e.target.result;
};
reader.readAsText(file);
//waiting until result is empty?
return result;
}
Run Code Online (Sandbox Code Playgroud)
它显示"空".
如何等到"结果"为空?其他方式?
我正在尝试设置一个页面,让您上传一个txt文件(即另一个程序生成的日志文件),然后进一步操作文本.到目前为止,我只想在console.log文本中,但后来我打算将行分开并从中获取一些细节来运行我的程序.
无论如何,当我上传我的日志文件时,我得到以下内容:null
$("#draftlog").change(function() {
var logFile = $('#draftlog').get(0).files[0];
var reader = new FileReader;
reader.readAsText(logFile);
var rawLog = reader.result;
console.log(rawLog);
});Run Code Online (Sandbox Code Playgroud)
body {
margin: 0;
min-width: 1200px;
}
.pickscontainer {
margin-left: 5%;
width: 90%;
border: 1px solid black;
}
.cardbox {
margin: 1px;
border: 2px solid black;
border-radius: 5px;
width: auto;
display: inline-block;
}
.card {
width: 210px;
height: 285px;
}
.picks {
width: 90%;
border: 1px solid black;
height: 150px;
margin-right: 5%;
margin-left: 5%;
}
.inputbox {
margin-left: 5%;
width: …Run Code Online (Sandbox Code Playgroud)