Через while (true) {} и там чекать пришел ли ответ от io что картинка загрузилась, и все это бузе промисов, только на колбэках. Но честно у тебя залочить все равно не выйдет, т.к. если ты блокируешь полностью основной тред, то через какое-то время будет сообщение что вкладка повисла, чтобы этого не случилось нужно через какие-то промежутки времени устраивать перерывы, но в это время начнут выполнятся таски из евент лупа, также пока залочен тред, ответа из io(load/error) скорее всего не будет. Еще есть вариант грузить через xhr, там был блокирующий метод загрузки данных, но хз жив ли он щас.