await-lock

v1.1.0
Mutex locks for ES7 async functions and delegating generator functions
async await lock es7 co yield generator promise

AwaitLock tests codecov

Mutex locks for async functions

npm package

Usage

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();
  }
});

Metadata

  • MIT
  • Whatever
  • James Ide
  • released 2/6/2015

Downloads

Maintainers