resourceMap = {}; async function loadImages(urlList) { for(let url of urlList) { let rv = await loadImage(url); if(!rv) { console.error("Unable to load image '" + url + "'."); } } } async function loadImage(url) { return new Promise(resolve => { let img = new Image(); img.onload = () => { resourceMap[url] = img; resolve(true); } img.onerror = () => { resolve(false); } resourceMap[url] = false; img.src = url; }); } function getImage(url) { if(resourceMap.hasOwnProperty(url) == false) { console.error("Image '" + url + "' does not exist"); return null; } else if(resourceMap[url] == false) { console.error("Image '" + url + "' is not loaded."); return null; } return resourceMap[url]; }