Изображение представляется файлом хранящимся на сервере и заключающего в себе информацию о пикселях в виде двухмерного массива чисел. Самый простой способ получить эти данные в программе загрузить их с помощью объекта Image, а затем передать его в метод drawImage для отрисовки на канвасе. Если вы не дождетесь полной загрузки данных то рисовать будет попросту нечего. Поэтому Ваша цель заключается в полной загрузке всех изображений и отрисовки их в нужном порядке. Этого проще всего добится с помощью Promise.