Неперехваченная ошибка ссылки: mahi не определен

#javascript #global-variables #uncaught-reference-error

#javascript #глобальные переменные #ошибка неперехваченной ссылки

Вопрос:

я получаю сообщение об ошибке, когда пытаюсь передать значение между двумя функциями, вот ошибка «Ошибка неперехваченной ссылки: mahi не определен», она определена и указана в строке № 121, но я все еще сталкиваюсь с ошибкой

    function encode() {
        var selectedfile = document.getElementById("cimg").files;
        if (selectedfile.length > 0) {
            var imageFile = selectedfile[0];
            var fileReader = new FileReader();
            fileReader.onload = function (fileLoadedEvent) {
                var srcData = fileLoadedEvent.target.result;  
                window.mahi = srcData; // here i have been defined variable as mahi
                console.log(mahi)   // here is variable work                
            }
            fileReader.readAsDataURL(imageFile);
        }
    }

    console.log(mahi) //here is a error "Uncaught ReferenceError: mahi is not defined" i have it defined and asigned at line no 121 stilli am facing error
  

Ответ №1:

Потому что, когда вы вызываете console.log(mahi) вне encode() , переменная еще не была объявлена.

Комментарии:

1. Даже если вы вызываете encode напрямую, это все равно не работает. Потому что он определен в обратном вызове, который может произойти через несколько секунд. Вы можете настроить внешний наблюдатель, чтобы проверить, определена ли переменная.