新学HTML5,遇到个问题,我在利用input type="file"控件读取本地的JSON文件里的JSON数据并插入到body中去,代码如下:
<script>
var aa = 1;
var loadFiles = document.getElementById("loadFiles");//获取id为loadFiles的input对象
function handleFiles(files){
if(files.length){
var file = files[0];
var reader = new FileReader();
reader.readAsText(file);
reader.onload = function(){
aa = 2;
console.log(aa);
};
console.log(aa);
}
}
</script>
<body>
<input type="file" id='loadFiles' onchange="handleFiles(this.files)" />
<div id="filesContent" ></div>
</body>
我发现两次console.log打印的结果,反而是先aa=1被打印出来,其次onload函数里面的aa=2才被打印出来,我查资料得知reader的onload方法是在它调用readAsText方法后立即调用的,为什么会先打印后面的console(也就是说我在onload方法外面调用的全是aa=1),这个onload函数和后面的console调用顺序究竟是怎样?
湖上湖
相关分类