@orca-fe/pocket
Version:
UI components by orca-team
24 lines • 602 B
JavaScript
var cache = new Map();
export default function loadScript(src, callback = e => {}) {
var p = cache.get(src);
if (!p) {
p = new Promise((resolve, reject) => {
var script = document.createElement('script');
script.src = src;
script.onload = function (e) {
resolve(e);
};
script.onerror = function (event, source, lineno, colno, error) {
cache.delete(src);
reject(error);
};
document.body.appendChild(script);
});
cache.set(src, p);
}
return p.then(() => {
callback();
}).catch(err => {
callback(err);
});
}