Задать вопрос
@lilwings

Ошибка в классе асинхронной функции?

export class ImgPreview {

    constructor() {
        this.addEvent();
    }

    onFile(event) {
        this.image = event.target.closest('.img-preview').querySelector('img');
        this.getImage(event.target);
    }

    async getImage(input) {
        let fileReader = new FileReader();

        fileReader.addEventListener('load', () => {
            await this.filter(fileReader.result, input);

            if (false) this.image.src = fileReader.result;
            else alert('Ошибка: Фотография не прошла фильтрацию');
        });

        fileReader.readAsDataURL(input.files[0]);
    }

    filter(data, input) {
        return new Promise((resolve) => {
            let image = new Image();

            image.addEventListener('load', () => {
                let width = Number( input.dataset.width ),
                    height = Number( input.dataset.height );

                if ( (image.naturalWidth < width || image.naturalHeight < height) && input.files[0].type !== 'image/webp' ) resolve(false);

                resolve(true);
            });

            image.src = data;
        });
    }

    addEvent() {
        document.addEventListener('change', (event) => { this.onFile(event); });
    }
}


Вот подсветка phpstorm:

5e34d278882b3720186021.png

Вот ошибка webpack:

5e34d2a8de9a8496246207.png
  • Вопрос задан
  • 101 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
notiv-nt
@notiv-nt
Как ваше ничего? Да, моё тоже
fileReader.addEventListener('load', async () => {
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 14:45
25000 руб./за проект
18 дек. 2024, в 14:43
25000 руб./за проект
18 дек. 2024, в 14:22
750 руб./за проект