Skip to content
Snippets Groups Projects
Select Git revision
  • d8b33a82a478a9910d55593fa6dffa0ce8f0d07d
  • main default protected
2 results

jsonp.js

Blame
  • jsonp.js 727 B
    const callbacks = {}
    
    window.gotIt = (filename, data) => callbacks[filename](data)
    
    export async function loadStaticJsonP(filename) {
      return new Promise((resolve, reject) => {
        const inFlight = callbacks[filename]
        if (inFlight === undefined) {
            const script = document.createElement("script")
            callbacks[filename] = data => {
                script.remove()
                delete callbacks[filename]
                resolve(data)
            }
            script.src = filename
            document.body.appendChild(script)
        } else {
            // already loading the same file, call the existing callback first
            callbacks[filename] = data => {
                inFlight(data)
                resolve(data)
            }
        }
      })
    }