Я пытаюсь загрузить изображение в JavaScript:
loadImage(src, img) {
return new Promise((resolve, reject) => {
img.onload = resolve;
img.onerror = reject;
img.src = src;
});
}
img
был создан ранее, но еще не существует в DOM. Он должен быть добавлен после загрузки.
Моя проблема: Насколько я понимаю, он на самом деле не собирается загружать изображение, потому что элемент еще не является частью DOM.
Я попытался использовать new Image()
, потому что это загрузит источник изображения перед вставкой в DOM:
loadImage(src, img) {
return new Promise((resolve, reject) => {
var tmp = new Image();
tmp.onload = resolve;
tmp.onerror = reject;
tmp.src = src;
img.src = src;
});
}
Однако, это делало загрузку дважды и чувствовало себя глючным.
Мне нужно сохранить (и использовать) элемент img
, так как к нему прикреплены другие обработчики событий и атрибуты.
Что я могу сделать, чтобы загрузить изображение и выполнить обещание, как только оно будет выполнено?