@Emanue1

Дождаться загрузки изображения?

Я использую такой код:
var first = new Image();
var second = new Image();


Мне нужно после того как загрузятся эти две картинки запустить функцию.
Я знаю как выполнить эту задачу, когда одна картинка. Вот так:
var one = new Image();
one.onload = function() { 
   runFunction();   
}


Как сделать аналогично, но с двумя картинками??
  • Вопрос задан
  • 2422 просмотра
Решения вопроса 2
Negwereth
@Negwereth
lvivcss.com.ua
Я б так как-то делал.
function loadImageAsync(url) {
  return new Promise((resolve, reject) => {
    const img = new Image();
    img.src = url;
    img.onload = resolve;
  });
}

Promise.all([
  loadImageAsync("img.jpg"),
  loadImageAsync("img.png")
])
  .then(images => {
    //do magic
  });
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
var a = new Image();
var b = new Image();
var loadedCounter = 0;
a.src = '//lorempixel.com/400/200/sports/'
b.src = '//lorempixel.com/400/200/cats/'
a.onload = b.onload = function() {
   loadedCounter++;
   if (loadedCounter == 2) {
     runFunction();
   }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы