@augment-vir/web
Version:
A collection of augments, helpers types, functions, and classes only for web (frontend) JavaScript environments.
21 lines (20 loc) • 659 B
JavaScript
import { DeferredPromise } from '@augment-vir/common';
/**
* Load an image from a URL and wait for it to be totally loaded.
*
* @category Web
* @category Package : @augment-vir/web
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
*/
export async function loadImage(imageUrl) {
const deferredPromise = new DeferredPromise();
const newImage = new Image();
newImage.onload = () => {
deferredPromise.resolve(newImage);
};
newImage.onerror = () => {
deferredPromise.reject(new Error(`Failed to load '${imageUrl}'`));
};
newImage.src = imageUrl;
return deferredPromise.promise;
}