Асинхронный интерфейс чтения объекта File или Blob
FileReader
let reader = new FileReader()
reader.readAsDataURL(url)
reader.onloadend = function() {}
img.src = reader.result;
error
Если ошибка возникнет во время чтения, это свойство будет ссылаться на объект FileError, описывающий ошибку.
onabort
Вызывается, если операция чтения была прервана методом abort().
onerror
Вызывается, если возникла какая-либо ошибка.
Свойство error объекта FileReader будет ссылаться на объект FileError, который имеет свойство code с кодом ошибки.
onload
Вызывается в случае успешного завершения операции чтения объекта File или Blob.
Свойство result объекта FileReader хранит содержимое объекта File или Blob в виде, зависящем от использовавшегося метода чтения.
onloadend
Каждый вызов метода чтения объекта FileReader в конечном итоге возбуждает со бытие «load», «error» или «abort».
Кроме того, после каждого из этих событий объект FileReader возбуждает событие «loadend» для программ, в которых было бы желательно обрабатывать единственное событие вместо трех.
onloadstart
Вызывается после вызова метода чтения, но перед тем как будут прочитаны какие-либо данные.
onprogress
Возбуждается примерно 20 раз в секунду, пока выполняется чтение данных из объекта File или Blob.
Объект ProgressEvent позволяет узнать количество прочитанных байтов, а свойство result объекта FileReader может содержать представление этих байтов.
readyState
Это свойство описывает текущее состояние объекта FileReader.
Его значением будет одна из трех констант:
EMPTY = 0, Метод чтения еще не был вызван.
LOADING = 1, Выполняется операция чтения.
DONE = 2, Операция чтения завершилась, успешно или с ошибкой.
result
Если операция чтения завершится успешно, это свойство будет хранить содержимое объекта File или Blob в виде строки или объекта ArrayBuffer (в зависимости от использовавшегося метода чтения).
Когда свойство readyState имеет значение LOADING или когда возбуждается событие «progress», это свойство может хранить неполное содержимое объекта File или Blob.
Если метод чтения еще не был вызван или если возникла ошибка, это свойство будет иметь значение null.
abort
()Прерывает операцию чтения.
Он присваивает свойству readyState значение DONE, свойству result – значение null и свойству error – объект FileError со свойством code, установленным в значение FileError.ABORT_ERR.
После этого возбуждаются события «abort» и «loadend».
readAsArrayBuffer
(Blob blob)Асинхронно читает данные из объекта blob и сохраняет их в свойстве result в виде объекта ArrayBuffer.
readAsBinaryString
(Blob blob)Асинхронно читает байты данных из объекта blob, преобразует их в двоичную строку и сохраняет ее в свойстве result.
Каждый «символ» в двоичной строке представлен кодом символа в диапазоне от 0 до 255.
Извлекать эти значения байтов можно с помощью метода String.charCodeAt().
Следует отметить, что двоичные строки являются не самым эффективным представлением двоичных данных: вместо них следует использовать объекты ArrayBuffer, когда это возможно.
readAsDataURL
(Blob blob)Асинхронно читает байты данных из объекта blob, преобразует их (учитывая тип объекта Blob) в URL-адрес data:// и присваивает полученную строку свойству result.
readAsText
(Blob blob[, string encoding])Асинхронно читает байты данных из объекта blob, декодирует их с использованием кодировки encoding в текстовую строку Юникода и затем присваивает полученную строку свойству result.
Если аргумент encoding не указан, используется кодировка UTF-8 (текст в кодировке UTF-16 определяется и декодируется автоматически, если он начинается с маркера Byte Order Mark)