loadScript.ts 911 B

12345678910111213141516171819202122232425262728
  1. //动态加载外部js
  2. //@param RESOURCE_LIST 外部地址集合["address"]
  3. export function loadVoLteResourceList(RESOURCE_LIST: any, success: any) {
  4. return new Promise((r) => {
  5. RESOURCE_LIST.reduce((res: any, el: any) => res.then(() => loadScript(el)), Promise.resolve())
  6. .then(() => {
  7. r()
  8. })
  9. .catch((error: any) => {
  10. console.error('外呼VoLTE sdk 前置 js 资源加载失败:', error.name, error.message)
  11. return Promise.reject(error)
  12. })
  13. })
  14. }
  15. export function loadScript(url: string) {
  16. return new Promise((resolve, reject) => {
  17. const script = document.createElement('script')
  18. script.onload = () => resolve()
  19. script.onerror = () => reject(new Error(`Load script from ${url} failed`))
  20. script.src = url
  21. const head = document.head || document.getElementsByTagName('head')[0]
  22. ;(document.body || head).appendChild(script)
  23. })
  24. }