Владимир Обабков, если Вы о коде, который в FileAPI.handleFile, то он будет асинхронным по отношению к блоку try/catch , который Вы объявили. Объявленный Вами блок поймает только ошибку, которая будет выброшена методом addEventListener, но не кодом в FileAPI.handleFile
Блок try/catch Вам придется добавить внутрь функции FileAPI.handleFile
Adel Khalitov, также сборщик мусора не моментально освобождает память. Даже если ссылок на переменную уже не осталось, сборка мусора все равно произойдет спустя какое-то время. Можно, конечно, вызывать GC руками, но нужно ли оно?)
Adel Khalitov, например, если чтение идет через fs.readFile - то это уже тоже проблема (особенно при больших файлах), так как весь файл сначала считывается в память, а затем только отдается в качестве результат работы функции.
Вариантов проблемных мест много. Пытаться что-то угадать не видя кода - бесполезное дело.
Adel Khalitov, все равно очень мало информации. Не видно как именно читаются файлы.
Хотя уже видно как минимум первая проблема - вы все сохраняете в память в объекте data
Adel Khalitov, невозможно составить краткий универсальный гайд.
Опишите хотя бы какого рода работа там выполняется. Обработка файлов или что-то подобное?
Adel Khalitov, ну как минимум профайлить работу только самой функции.
К сожалению, "гадание" по скриншотах ни к чему не приведет. Нужно видеть сам код.
Блок try/catch Вам придется добавить внутрь функции FileAPI.handleFile