function jsonp({url, params, callback}) {
return new Promise((resolve, reject) => {
let script = document.createElement('script')
// callback 让服务器端调用,并且将数据传递进来
window[callback] = function (data) {
resolve(data)
document.body.removeChild(script)
}
params = {...params, callback}
const arr = []
for (let key in params) {
arr.push(`${key}=${params[key]}`)
}
script.src = `${url}?${arr.join('&')}`
document.body.appendChild(script)
})
}
function synchronize(urls) {
return urls.map((url,i) => jsonp({url, params: {}, callback: 'show' + i}))
}
const ajurl = [
'http://api.douban.com/v2/movie/in_theaters',
'http://api.douban.com/v2/movie/top250'
]
Promise.all(synchronize(ajurl))
.then(result => {
for (let val of result) {
console.log(val)
}
})
JSONP 通用函数封装
猜你喜欢
转载自www.cnblogs.com/qiqingfu/p/10321054.html
今日推荐
周排行