基于jsonp 做一层promise封装

2017-06-12  本文已影响84人  菲龍探雲

https://github.com/webmodules/jsonp

import originJSONP from 'jsonp'

export default function jsonp(url, data, option) {
  url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)
  return new Promise((resolve, reject) => {
      originJSONP(url, option, (err, data) => {
        if (!err) {
          resolve(data)
        } else {
          reject(data)
        }
      })
    }
  )
}

function param(data) {
  let url = ''
  for (var k in data) {
    let value = data[k] !== undefined ? data[k] : ''
    url += `&{k}=${encodeURIComponent(value)}`
  }
  return url ? url.substring(1) : ''
}

上一篇 下一篇

猜你喜欢

热点阅读