February 09, 2022
아래 코드를
// SearchInput.js
searchInput.addEventListener('keyup', function(e) {
if (e.target.className === 'search-keyword') {
if (timer) {
clearTimeout(timer)
}
timer = setTimeout(function() {}, 200)
}
})
아래 코드처럼 debounce함수를 새로 만들어서 리팩토링했다.
// SearchInput.js
searchInput.addEventListener(
'keyup',
debounce(e => {
if (e.target.className === 'search-keyword') {
}
}, 500)
)
// debounce.js
export default function debounce(fn, ts) {
let timer
return (...args) => {
if (timer) {
clearTimeout(timer)
}
timer = setTimeout(() => {
fn(...args)
}, ts)
}
}