FileReader读取文件后为什么总是undefined?
我在用FileReader读取用户上传的图片,但在onload回调外面拿不到结果,打印出来一直是undefined。明明在回调里console.log能看见数据啊?
我试过把结果赋值给一个变量,但好像因为异步的问题拿不到。代码大概是这样的:
const file = e.target.files[0];
let imgData;
const reader = new FileReader();
reader.onload = function(e) {
imgData = e.target.result;
};
reader.readAsDataURL(file);
console.log(imgData); // 这里是 undefined
console.log在onload之前执行了,所以是undefined。把需要用imgData的代码放到onload回调里,或者用Promise包装:或者Promise版本: