3.0.0 • Published 4 months ago

await-lock v3.0.0

Weekly downloads
18,841
License
MIT
Repository
github
Last release
4 months ago

AwaitLock tests codecov

Mutex locks for async functions

API

API documentation

Usage

This package is published only as an ES module. In addition to importing ES modules from ES modules, modern versions of Node.js support requiring ES modules from CommonJS modules.

import AwaitLock from 'await-lock';

let lock = new AwaitLock();

async function runSerialTaskAsync() {
  await lock.acquireAsync();
  try {
    // IMPORTANT: Do not return a promise from here because the finally clause
    // may run before the promise settles, and the catch clause will not run if
    // the promise is rejected
  } finally {
    lock.release();
  }
}

You can also use AwaitLock with co and generator functions.

import AwaitLock from 'await-lock';

let runSerialTaskAsync = co.wrap(function*() {
  yield lock.acquireAsync();
  try {
    // Run async code in the critical section
  } finally {
    lock.release();
  }
});
blink-camerasmenlolab-runner@infinitebrahmanuniverse/nolb-awajam3-react-sdk@everything-registry/sub-chunk-1191talktsy-matrix-react-sdktest-matrix-react-sdkwan-dex-sdk-walletwan-web-walletwebsql-helpertest1dweb@daimo/api@cproto/api@rpmanetworks/casbincoc-java-explorerirslackdkinda-web-sqlkinda-cordova-sqlitekitcheningredientsstark-dbsqlite3-helpersqlite3-helper-rebuildsqlite3-settings-store-helpertwype-sdk@apilads/auto-cert-man-back@armal/nodecore-nano@aptpod/iscp-ts@astro-utils/forms@atproto/api@atek-cloud/atek@beaker/webdb@beaker/core@bluelinklabs/ctzn-server@bycedric/snack-runtime@chcaa/twitter-academic-search@chcaa/web-extractor@cerpus/edlib-node-utils@accelergreat/e2e-cypress@deboxsoft/casbin@dbrowser/framework@db-lab/casbin@dhealthdapps/frontend@dhub/clixyz-98-1yalesyncalarmzkp-sbmtjs@gongddex/hydro-sdk-wallet@gigasource/hook@gigasource/notificator@gnuxie/matrix-protection-suite@infrablocks/concourse@lequan/vchasno-signer@isayme/qinglong@lumieducation/h5p-webcomponents@mser/matrix-react-sdk@mtbl/matrix-react-sdk@nabla/js@navxio/instamancer@evo/vchasno-signer@extplug/room-settings@k8slens/open-lens@ist-group/react-native-oidc@jagcesar/yalesyncalarm@hyperspace/cli@nulink_network/nulink-sdk@o/utils@robertlong/matrix-react-sdkmonstrum-casbinnativescript-task-dispatcherpassbolt-browser-extensionparadis-redbean-nodescratch-db-testscratch-gestproject-health-toolreadme-metric-reportersemaphore-merkle-treenbcasbinrandom-access-indexed-fileredbean-noderedbean-sqlquickshotsnack-runtimereactive-postgresgiga-notificatorgrid3_clienthypercloudingestdbingestdb-levelinjestdbinjestdb-levelhyperinstalliamdatabinderhelios-utilshappy-css-modulesinstamancerlevel-object-bufferlscontestsmcubed-persistencematrix-react-sdkmatrix-react-sdk-dxmb
3.0.0

4 months ago

2.2.1

3 years ago

2.2.0

3 years ago

2.2.2

3 years ago

2.1.0

5 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.3

7 years ago

1.1.2

9 years ago

1.1.1

10 years ago

1.1.0

10 years ago

1.0.0

10 years ago

0.0.1

10 years ago

0.0.0

10 years ago