Compartir a través de


CancellableAsyncLock interface

CancellableAsyncLock proporciona un mecanismo para forzar las tareas que usan la misma "clave" que se va a ejecutar en serie.

Las tareas pendientes se pueden cancelar manualmente a través de abortSignal o cancelarse automáticamente mediante un valor de tiempo de espera proporcionado.

Métodos

acquire<T>(string, (args: any[]) => Promise<T>, AcquireLockProperties)

Devuelve una promesa que se resuelve en el valor devuelto por la función de tarea proporcionada. Solo se pueden invocar 1 tarea a la vez para un valor de key determinado.

Una llamada de adquisición se puede cancelar a través de un abortSignal. Si se cancela, la promesa se rechazará con un AbortError.

acquireTimeoutInMs también se puede proporcionar a las propiedades. Si se alcanza el tiempo de espera antes de invocar el task proporcionado, la promesa se rechazará con un error que indica que la tarea agota el tiempo de espera para adquirir un bloqueo.

Detalles del método

acquire<T>(string, (args: any[]) => Promise<T>, AcquireLockProperties)

Devuelve una promesa que se resuelve en el valor devuelto por la función de tarea proporcionada. Solo se pueden invocar 1 tarea a la vez para un valor de key determinado.

Una llamada de adquisición se puede cancelar a través de un abortSignal. Si se cancela, la promesa se rechazará con un AbortError.

acquireTimeoutInMs también se puede proporcionar a las propiedades. Si se alcanza el tiempo de espera antes de invocar el task proporcionado, la promesa se rechazará con un error que indica que la tarea agota el tiempo de espera para adquirir un bloqueo.

function acquire<T>(key: string, task: (args: any[]) => Promise<T>, properties: AcquireLockProperties): Promise<T>

Parámetros

key

string

Todas las llamadas acquire se agrupan mediante el keyproporcionado.

task

(args: any[]) => Promise<T>

Función que se va a invocar una vez adquirido el bloqueo.

properties
AcquireLockProperties

Propiedades adicionales para controlar el comportamiento de acquire.

Devoluciones

Promise<T>