A protex is a mutex that works with Promises
protex is like a mutex but for Promises. That is, an instance executes one promise at a time and remains locked until the
Promise is resolved.
var protex = require'protex';protexisLocked; // => false// Submit a promise chain for execution.// The protex instance will remain locked until the returned promise is fulfilled.var promise = protexexecreturn Promiseresolvethentask1thentryprotexexecconsole.log"i won't run";;catch eprotexisLocked; // => truethentask2;promisethenconsole.log"protex is now unlocked!";;
npm install protex
var protex = require('protex');
Copy and paste
build/protex.min.js to your project.
Create a new
true if currently locked,
thing for execution. Throws an exception if currently locked.
thing can be either a
function or a
Promise, although functions are preferred - the reason being that Promises begin to execute the moment they are created, i.e. before prx.exec() is called, meaning that it's possible to circumvent the lock. Passing a function will correctly delay the instantation of the
prx.exec() has been called and locking is complete.
thing is a function and it doesn't return a
Promise it is assumed that the function is synchronous and the
protex is unlocked immediately after the call returns.
Released under the ISC license.