Options
All
  • Public
  • Public/Protected
  • All
Menu

Hierarchy

  • AsyncLockOptions

Index

Properties

Optional Promise

Promise?: unknown

Use your own promise library instead of the global Promise variable.

example

import AsyncLock = require('async-lock'); import Bluebird = require('bluebird'); import Q = require('q');

new AsyncLock({ Promise: Bluebird }); // Bluebird new AsyncLock({ Promise: Q }); // Q

Optional domainReentrant

domainReentrant?: boolean

Make a lock reentrant in the same domain.

default

false

example

import AsyncLock = require('async-lock'); import * as domain from 'domain';

const lock = new AsyncLock({ domainReentrant: true }); const d = domain.create(); d.run(() => { lock.acquire('key', () => { // Enter lock return lock.acquire('key', () => { // Enter same lock twice }); }); });

Optional maxOccupationTime

maxOccupationTime?: number

Max amount of time allowed between entering the queue and completing execution.

default

0 (Never)

Optional maxPending

maxPending?: number

Max number of tasks allowed in the queue at a time.

default

1000

Optional skipQueue

skipQueue?: boolean

Allows to enqueue a task in the front of the queue, skipping all enqueued tasks.

default

false

example

import AsyncLock = require('async-lock');

const lock = new AsyncLock(); // Add a task to the front of the queue waiting for a given lock lock.acquire(key, fn1, cb); // runs immediately lock.acquire(key, fn2, cb); // added to queue lock.acquire(key, priorityFn, cb, { skipQueue: true }); // jumps queue and runs before fn2

Optional timeout

timeout?: number

Max amount of time an item can remain in the queue before acquiring the lock.

default

0 (Never)

Generated using TypeDoc