У меня есть компонент с <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 раз для разных изображений, которые я загружаю на одной странице.
ПРИМЕЧАНИЕ: Это страница для добавления blogPosts и изображений для сообщений.