36 lines
714 B
JavaScript
36 lines
714 B
JavaScript
|
|
||
|
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)
|
||
|
}
|