loadJS(src).then()异步Promise加载外链js脚本API getScript(src)
loadJS(src).then()异步Promise加载外链js脚本API函数 getScript(src)/getJS(src)
实现一个函数getScript(src)可加载外部js脚本文件, 支持Promise api, 方便调用
支持{ src: '', async: true }非阻塞加载远程js脚本
// 加载js, 入参可以是string src, 也可以是对象{src: '', async: true}
function getScript(options) {
return new Promise(function (resolve, reject) {
options = typeof options === 'string' ? { src: options } : options;
var script = document.createElement('script');
script.src = options.src;
if (options.async) script.async = options.async;
script.onload = resolve;
script.onerror = reject;
document.body.append(script);
});
}
// 调用 getScript()
// 加载声网 js sdk
async function getAgoraSdk() {
let AgoraRTC = window.AgoraRTC;
if (AgoraRTC) return AgoraRTC;
// https://doc.shengwang.cn/doc/rtc/javascript/get-started/quick-start
let src = 'https://download.agora.io/sdk/release/AgoraRTC_N-4.19.1.js';
// await getScript({ src });
await getScript({ src, async: true });
AgoraRTC = window.AgoraRTC;
return AgoraRTC;
}
// 测试
getAgoraSdk().then(sdk => {
console.log('sdk js loaded.', sdk)
})