该方法接收一个标识远端js地址的url参数,加载成功后方法返回一个fulfilled promise,且远端js能够执行;加载失败或者超时5s则返回rejected promise
/**
* 加载外部的js文件
* @param url 要加载的js的url地址
*
*/
function loadScript(url) {
return new Promise( (resolve, reject) => {
let _script = document.createElement('script')
_script.setAttribute('charset', 'utf-8')
_script.setAttribute('type', 'text/javascript')
_script.setAttribute('src', url)
document.getElementsByTagName('head')[0].appendChild(_script)
timeout = setTimeout(() => {
reject('timeout') //rejected
}, 5000)
_script.onload = () => { //加载完成
clearTimeout(timeout)
resolve() //fulfilled
}
_script.onerror = () => { //加载失败
reject('fail') //rejected
}
})
}
参考: