Вопрос в заголовке, но хочу особо подчеркнуть слово "дождаться". Не асинхронно отловить момент загрузки, а именно дождаться. Кто-то, конечно же, сразу напишет капитанских фраз типа "используй промисы". Это я знаю. Но посмотрите сюда:
function loadImage (src) {
return new Promise((resolve, reject) => {
const img = new Image();
img.onload = () => { console.log('load') };
img.onerror = () => { console.log('error') };
img.src = src;
});
};
console.log('before');
loadImage('http://example.com/1.jpg')
.then(() => { console.log('then') })
.catch(() => { console.log('catch') });
console.log('after');
Сообщение 'after' попадет в консоль до загрузки картинки. А я хочу, чтобы скрипт как бы "остановился" и не выполнял никакой нижеследующий код до наступления одного из событий load/error.
Это вообще возможно?