Skip to content

An asynchronous condition variable for JavaScript implemented internally using Promises

License

Notifications You must be signed in to change notification settings

joeireland/condition-variable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

condition-variable

An asynchronous condition variable for JavaScript implemented internally using Promises.

License MIT tests Coverage Status Known Vulnerabilities npm slack

Install with:

npm install condition-variable

Usage Example

var CondVar   = require('condition-variable');
var util      = require('util');
var condition = new CondVar();
var maxTime   = 10000; // 10 second maximum to wait for message

function notification(err, result) {
  if (err) {
    condition.cancel(err);
  }
  else {
    condition.complete(result);
  }
}

condition.wait(maxTime, (err, result) => {
  if (err) {
    console.log('FAILED: err=%s', util.inspect(err));
  }
  else {
    console.log('SUCCESS: result=%s', util.inspect(result));
  }
});

// TO SIMULATE COMPLETE WITH RESULT
// setTimeout(notification, 1000, null, 'IT WORKED!');

// TO SIMULATE AN ERROR
// setTimeout(notification, 1000, 'FAILED');

About

An asynchronous condition variable for JavaScript implemented internally using Promises

Resources

License

Stars

Watchers

Forks

Packages

No packages published