是不是有遇到过,我咔咔误操作点击提交按钮两下,直接就请求两次,然后生成两次记录的尴尬场景呢?
这个时候就需要用到防抖了,由于太过于简单,直接不多说,看代码就懂了,用就完了:
let timeout
const debounce = async (fn, arg, time = 3000) => {
if (timeout) {
clearTimeout(timeout)
} else {
// const res =
await fn(arg)
// return res
}
timeout = setTimeout(() => {
timeout = null
}, time)
}