console
function debounce(fn,delay = 500,immediate = false){
let timer;
return function(...args){
let ctx = this;
timer && clearTimeout(timer)
if(immediate){
immediate = false
fn.apply(ctx, args)
}
timer = setTimeout( function() {
immediate = true
fn.apply(ctx, args)
},delay)
}
}
let ipt = document.getElementById('input');
let handler = debounce(handleSendPhone, 500);
ipt.addEventListener('input',function(){
let val = this.value;
handler(val);
});
function handleSendPhone(val){
ajaxRequest({
user:val
}).then(res => {
console.log(res)
})
}
let items = ['abc','aaa','bbb','ccc','ddd'];
function ajaxRequest({user}){
return new Promise((resolved,rejected) => {
setTimeout(() => {
let res = items.includes(user)?'正确':'错误';
resolved(res);
},500)
});
}
<input type="text" id="input"/>