Skip to content

lock ​

A função lock garante que uma função assíncrona não seja executada simultaneamente, podendo enfileirar chamadas ou rejeitá-las conforme configuração.

Sintaxe ​

typescript
lock(callback, options?)

Parâmetros ​

ParâmetroTipoDescrição
callbackFunctionFunção assíncrona a ser protegida pelo lock.
optionsobject(Opcional) Configurações: { queue, onLocked, onError }.

Opções ​

  • queue (boolean): Se true, chamadas durante o lock são enfileiradas (padrão: true).
  • onLocked (Function): Função chamada quando uma chamada é bloqueada.
  • onError (Function): Função chamada em caso de erro na execução do callback.

Retorno ​

Retorna uma função assíncrona que respeita o lock e as opções configuradas.

Exemplos ​

typescript
const lockedFn = lock(async () => {
  await sleep(100);
  console.log('Executado!');
});

lockedFn();
lockedFn(); // Executa em sequência, não simultaneamente

Notas ​

  • Lança erro se o callback não for função.
  • Útil para evitar condições de corrida em operações assíncronas.

Referências ​

Released under the MIT License.