UNPKG

dynamic-loading-script

Version:
58 lines 1.81 kB
// index.ts function dynamic_loading_script_default(url, option) { return new Promise((resolve, reject) => { const { variableName, timeout, callback, jsonpCallbackName } = option; let timer; let script; if (typeof url === "string") { if (!variableName) { reject(new Error("variableName\u4E0D\u80FD\u4E3A\u7A7A")); return; } if (window[variableName]) { callback && callback(window[variableName]); resolve(window[variableName]); return; } if (jsonpCallbackName) { window[jsonpCallbackName] = () => { resolve(window[variableName]); delete window[jsonpCallbackName]; timer && clearTimeout(timer); callback && callback(window[variableName]); }; } if (timeout !== false) { timer = window.setTimeout(() => { if (!window[variableName]) { script.onload = null; script.onerror = null; document.body.removeChild(script); reject(new Error("\u52A0\u8F7D\u8D85\u65F6")); } }, timeout || 1e4); } script = document.createElement("script"); script.src = url; script.type = "text/javascript"; script.onload = () => { if (jsonpCallbackName) return; timer && clearTimeout(timer); callback && callback(window[variableName]); resolve(window[variableName]); }; script.onerror = () => { timer && clearTimeout(timer); reject(new Error("\u52A0\u8F7D\u5931\u8D25")); }; document.head.appendChild(script); } else { throw new Error("url\u7C7B\u578B\u4E0D\u6B63\u786E"); } }); } export { dynamic_loading_script_default as default }; //# sourceMappingURL=index.mjs.map