js implementa uma função simples para anti-vibração, que pode ser usada para anti-vibração com base no tempo de entrada

Aqui está um exemplo simples: anti-vibração com base no tempo de entrada t:

function debounce(func, t) {
  let timeoutId;

  return function (...args) {
    clearTimeout(timeoutId);
    timeoutId = setTimeout(() => {
      func.apply(this, args);
    }, t);
  };
}

Esta função recebe dois parâmetros: funca função que precisa ser anti-vibração te o intervalo de tempo anti-vibração (em milissegundos).

Internamente, usamos uma variável timeoutIdpara armazenar setTimeouto valor de retorno de. Sempre que a função anti-vibração é chamada, primeiro limpamos o cronômetro anterior (se houver), depois criamos um novo cronômetro e executamos a função de entrada após um atraso de t milissegundos.

Usar esta função para debounce garante que apenas a última chamada será executada dentro do intervalo de tempo especificado e as chamadas anteriores serão canceladas.

Por exemplo, use debouncea função para eliminar uma função de retorno de chamada:

function myCallback() {
  console.log('Debounced callback');
}

const debouncedCallback = debounce(myCallback, 200);

// 调用防抖函数
debouncedCallback(); // 200ms 后输出 "Debounced callback"
debouncedCallback(); // 取消前一次调用,重新计时 200ms
debouncedCallback(); // 取消前一次调用,重新计时 200ms

Acho que você gosta

Origin blog.csdn.net/weixin_48674314/article/details/130774221
Recomendado
Clasificación