function jsonp({ url, params, callback }) {
return new Promise((resolve, reject) => {
const script = document.createElement('script')
window[callback] = data => {
resolve(data)
document.removeChild(script)
}
const formatParams = { ...params, callback };
const requestParams = Object.keys(formatParams)
.reduce((acc, cur) => {
return acc.concat([`${cur}=${formatParams[cur]}`]);
}, [])
.join('&');
const src = `${url}?${requestParams}`;
script.setAttribute('src', src);
document.body.appendChild(script);
})
}
jsonp({
url: 'https://xxx.xxx',
params: {id:2},
callback: 'fn',
})
console