UNPKG

@amaui/utils

Version:
49 lines (42 loc) 1.32 kB
import isEnvironment from './isEnvironment'; const allImagesLoaded = () => { if (isEnvironment('browser')) { return new Promise(resolve => { try { const images = window.document.getElementsByTagName('img'); const imagesTotal = images.length; let loaded = 0; const pending = []; if (!imagesTotal) return resolve(loaded); const check = () => { if (imagesTotal === loaded && !pending.length) return resolve(loaded); pending.forEach((image, index) => { if (image.complete && image.naturalWidth !== 0) pending.splice(index, 1); }); setTimeout(check, 40); }; const onLoad = event => { loaded += 1; if (!event.target.complete || event.target.naturalWidth === 0) pending.push(event.target); check(); }; const onError = () => { loaded += 1; }; for (const image of images) { if (image.complete) onLoad({ target: image });else { image.onload = onLoad; image.onerror = onError; } } } catch (error) { console.error("Images loaded: ".concat(error)); resolve(false); } }); } return false; }; export default allImagesLoaded;