Как получить доступ к правильному индексу на Javascript For Loop в обработчике событий - PullRequest
0 голосов
/ 25 мая 2019

Я знаю, что это распространенная проблема, но просмотр других примеров на этом сайте, похоже, мне не помог.

Я пытаюсь реализовать окно загрузки многофайловых изображений, в котором отображаются изображения, которые нужно загрузить до того, как они будут отправлены на сервер.

У меня общая проблема: я могу просматривать только последнее изображение в списке загрузки файлов.

Я решил разбить проблему на самые маленькие части и просто вывести индекс каждого значения в списке на консоль Javascript.

Но я получаю только последнее значение индекса. Как только я смогу получить правильное значение индекса, я также смогу исправить первоначальную проблему не отображения загружаемых изображений.

Вот мой код:

handleImage(event){

    //this is where I would set up the image to be displayed
    var testFunction = function(res) {
        console.log(res);
    }


    var files = event.target.files;

    for(var i = 0; i < files.length; i++) {


        var fReader = new FileReader();

        //trying to use a closure but not working correctly    
        (function(){

            fReader.addEventListener("load", function () {

                //testFunction(fReader.result);

                testFunction(i);


            });

            fReader.readAsDataURL(files[i]);

        }(i));
    }
}

Итак, мой вопрос: как мне создать правильное закрытие для захвата правильного значения индекса?

...