import jsonp from 'jsonp'
import querystring from 'querystring'
let timeout
let currentValue

export function fetch (value, callback) {
  if (timeout) {
    clearTimeout(timeout)
    timeout = null
  }
  currentValue = value

  function fake () {
    const str = querystring.encode({
      code: 'utf-8',
      q: value,
    })
    jsonp(`http://suggest.taobao.com/sug?${str}`, (err, d) => { // eslint-disable-line
      if (currentValue === value) {
        const result = d.result
        const data = []
        result.forEach((r) => {
          data.push({
            value: r[0],
            text: r[0],
          })
        })
        callback(data)
      }
    })
  }

  timeout = setTimeout(fake, 300)
}