DOM и React Senior DOM на практике обновлено

Чтение выбранного файла

Условие

readTextFile(file, ReaderCtor): возвращает промис с текстом файла. Ошибка чтения - отклонение. Обработчики снимаются после завершения.

Что проверяют тесты

  • читает текст

  • ошибка чтения

  • прерывание

  • обработчики снимаются

Как подойти

Классическое превращение событийного API в промис. Три исхода вместо двух: помимо успеха и ошибки есть прерывание, и без его обработки промис зависнет навсегда. Снятие обработчиков освобождает замыкания - на больших файлах это заметно. В современных браузерах у Blob есть метод text(), возвращающий промис, - назови его как более короткий путь.

Подсказки: 3
  1. FileReader работает на событиях, а не на промисах - обёртка обязательна.
  2. Кроме onload и onerror есть onabort: пользователь может прервать чтение.
  3. Обработчики вешаются до вызова readAsText.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.