Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 24x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import { loadResource, LoadResourceUrlType } from './loadResource' let i = 0 /** * 发起 jsonp 请求。 * * @param url 请求地址 * @param keyOfCallbackName 回调函数名的键 */ export function jsonp<T>( url: string, keyOfCallbackName = 'callback', ): Promise<T> { return new Promise<T>((resolve, reject) => { const callbackName = `__vtils_jsonp_callbacks__${i++}` ;(window as any)[callbackName] = (result: T) => { resolve(result) delete (window as any)[callbackName] } const _url = new URL(url) _url.searchParams.set(keyOfCallbackName, callbackName) url = _url.toString() loadResource({ path: url, type: LoadResourceUrlType.js, }).catch(reject) }) } |