Я б так как-то делал.
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
});