ant-design-vue/components/vc-select2/examples/common/tbFetchSuggest.tsx

36 lines
699 B
TypeScript
Raw Normal View History

2020-10-07 14:49:01 +00:00
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) => {
if (currentValue === value) {
const { result } = d;
const data = [];
result.forEach(r => {
data.push({
value: r[0],
text: r[0],
});
});
callback(data);
}
});
}
timeout = setTimeout(fake, 300);
}