【发布时间】:2019-06-07 16:00:36
【问题描述】:
我有一个带有<input type='file'/> 的组件来选择图像并将其上传到我的存储桶。
我正在使用FileReader().readAsText(file);,它是异步的,我正在设置onload 和onerror 事件的侦听器。
发件人: https://developer.mozilla.org/en-US/docs/Web/API/FileReader
使用 addEventListener() 或为此接口的 oneventname 属性分配事件侦听器来侦听这些事件。
每次用户选择文件时都会运行。我正在计算一个 md5 哈希值以用作存储中的 fileName。
if (newFile !== undefined && newFile !== null) {
md5Hash = await new Promise((resolve,reject) => {
const reader = new FileReader();
reader.onload = (event) => {
console.log('md5 calculated!');
const binary = event.target.result;
resolve(md5(binary));
};
reader.onerror = (event) => {
reject(event.target.result);
};
reader.readAsText(newFile);
});
}
在我处理完这些侦听器后,我是否需要费心移除它们?这是一个好的做法还是没有这样做的意义?
对于我在同一页面上传的不同图像,该代码可能会运行 5 或 6 次。
注意:这是一个添加博客帖子和帖子图片的页面。
【问题讨论】:
标签: javascript filereader