Compartir a través de


CancellableAsyncLock interface

CancellableAsyncLock proporciona un mecanismo para forzar que las tareas usen la misma "clave" para ejecutarse 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 determinado key .

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

acquireTimeoutInMs también se puede proporcionar a las propiedades. Si se alcanza el tiempo de espera antes de invocar el proporcionado task , 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 determinado key .

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

acquireTimeoutInMs también se puede proporcionar a las propiedades. Si se alcanza el tiempo de espera antes de invocar el proporcionado task , 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 acquire llamadas se agrupan mediante el proporcionado key.

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>