Что то типа такого надо
function loadImg (img, src) {
return new Promise ( (res, rej) => {
img.onload = () => res()
img.onerror = () => rej()
img.src = src
})
}
var cvs = document.getElementById("canvas");
var ctx = cvs.getContext("2d");
var bird = new Image();
var bg = new Image();
var fg = new Image();
var pipeUP = new Image();
var pipeBottom = new Image();
function draw(); {
ctx.drawImage(bg, 0, 0);
}
let ap = [
loadImg(bird, "img/bird.png"),
loadImg(fg, "img/fg.png"),
loadImg(pipeUp, "img/pipeUp.png"), // Если тоже нужно ждать
]
loadImg(pipeUp, "img/pipeUp.png")
.then(() => Promise.allSettled(ap))
.then(() => draw());