36 lines
725 B
JavaScript
36 lines
725 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,
|
|
});
|
|
/*eslint-disable */
|
|
jsonp(`http://suggest.taobao.com/sug?${str}`, (err, d) => {
|
|
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);
|
|
}
|