Поделиться через


CancellableAsyncLock interface

CancellableAsyncLock предоставляет механизм для принудительного последовательного выполнения задач с использованием одного и того же ключа. Ожидающие задачи можно отменить вручную с помощью функции abortSignal или автоматически отменить, достигнув указанного значения времени ожидания.

Методы

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

Возвращает обещание, которое разрешается в значение, возвращаемое предоставленной функцией задачи. Для заданного key значения за раз можно вызвать только 1 задачу. Вызов по получению можно отменить с помощью abortSignal. В случае отмены обещание будет отклонено с помощью AbortError.

acquireTimeoutInMs также можно предоставить свойствам. Если время ожидания истекло до вызова предоставленного task , обещание будет отклонено с сообщением Об ошибке, указывающее, что время ожидания задачи истекло, чтобы получить блокировку.

Сведения о методе

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

Возвращает обещание, которое разрешается в значение, возвращаемое предоставленной функцией задачи. Для заданного key значения за раз можно вызвать только 1 задачу. Вызов по получению можно отменить с помощью abortSignal. В случае отмены обещание будет отклонено с помощью AbortError.

acquireTimeoutInMs также можно предоставить свойствам. Если время ожидания истекло до вызова предоставленного task , обещание будет отклонено с сообщением Об ошибке, указывающее, что время ожидания задачи истекло, чтобы получить блокировку.

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

Параметры

key

string

Все acquire вызовы группируются по предоставленному объекту key.

task

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

Функция, вызываемая после получения блокировки.

properties
AcquireLockProperties

Дополнительные свойства для управления поведением acquire.

Возвращаемое значение

Promise<T>