我有一个输入框。用户停止输入后,我想执行一个 HTTP 请求并等待结果。
由于 jsbin 上不允许网络请求,所以我setTimeout()
改用了。
var log = console.log.bind(console)
var delayedResults = new Promise(function(resolve) {
setTimeout(function(){
resolve('Wooo I am the result!')
}, 3000);
});
document.querySelector('input').addEventListener('input', _.debounce(async function(){
log('Doing search')
var result = await delayedResults
log('Result is', result)
}), 500);
但是,当我在框中键入时,“正在搜索”会立即出现每个字符 - 我希望它仅在 500 毫秒到期后出现。
如何使用去抖动和等待?