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) } } }) }