2020-08-20 02:10:42 +02:00
|
|
|
import { env } from '../env';
|
|
|
|
import { isMediaLoaded } from './isMediaLoaded';
|
|
|
|
export function awaitMediaLoaded(media) {
|
2020-08-18 14:04:33 +02:00
|
|
|
return new Promise((resolve, reject) => {
|
2020-08-20 02:10:42 +02:00
|
|
|
if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) {
|
2020-08-18 14:04:33 +02:00
|
|
|
return resolve();
|
|
|
|
}
|
|
|
|
function onLoad(e) {
|
|
|
|
if (!e.currentTarget)
|
|
|
|
return;
|
|
|
|
e.currentTarget.removeEventListener('load', onLoad);
|
|
|
|
e.currentTarget.removeEventListener('error', onError);
|
|
|
|
resolve(e);
|
|
|
|
}
|
|
|
|
function onError(e) {
|
|
|
|
if (!e.currentTarget)
|
|
|
|
return;
|
|
|
|
e.currentTarget.removeEventListener('load', onLoad);
|
|
|
|
e.currentTarget.removeEventListener('error', onError);
|
|
|
|
reject(e);
|
|
|
|
}
|
|
|
|
media.addEventListener('load', onLoad);
|
|
|
|
media.addEventListener('error', onError);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
//# sourceMappingURL=awaitMediaLoaded.js.map
|