SOURCE

console 命令行工具 X clear

                    
>
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);
//handler:debounce执行后return的函数。

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'];
//模拟ajax请求
function ajaxRequest({user}){
    return new Promise((resolved,rejected) => {
        setTimeout(() => {
            let res = items.includes(user)?'正确':'错误';
            resolved(res);
        },500)
    });
}
<input type="text" id="input"/>