Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

await-notify

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

await-notify

Java like wait and notify for JavaScript ES7 async/await

  • 1.0.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3K
increased by10.7%
Maintainers
1
Weekly downloads
 
Created
Source

Simple library providing Java like wait and notify functionality for async/await syntax.

Works in Node (or browser via Browserify or Webpack) when Promise and async/await syntax are enabled.

Install

npm install --save await-notify

Usage

const { Subject } = require('await-notify');
const event = new Subject();

(async () => {
  while (true) {
    await event.wait();
    console.log('Event occured');
  }
})();

setTimeout(() => {
  event.notify();
}, 1000);

API reference

Subject

A class representing subjects that could be waited for and notfied on.

Subject.prototype.wait([timeout = Infinity])

Returns a promise that will be resolved either when the subject is been notfied or when timeout occurs.

timeout parameter is in milliseconds, and no timeout will occur if not set to an finite number greater than 0.

The promise resolves false if timeout occurs, resolves true otherwise.

const subject = new Subject();

(async () => {
  const notTimeout = await subject.wait();
  ...
})();
Subject.prototype.notify()

Resolve one waiting session. Does nothing if no one is waiting on this subject.

Return nothing and thus should not be used with await.

subject.notify();
Subject.prototype.notifyAll()

Similar to notify but notifies all waiting session.

Tips

Pass data to the waiter when calling notify

There's no fancy way to do this, but a Subject instance is just another plain JavaScript object which you can freely assign parameters to. So you may just do this:

const { Subject } = require('await-notify');
const event = new Subject();

(async () => {
  while (true) {
    await event.wait();
    console.log('Event occured with message:'. event.message);
  }
})();

setTimeout(() => {
  event.message = 'Hello there';
  event.notify();
}, 1000);

Use without async/await

Under the hood, async/await are just sugar syntax for using Promise. So using promise directly is fine.

const { Subject } = require('await-notify');
const event = new Subject();

function listen() {
  event.wait().then(() => {
    console.log('Event occured');
    listen();
  });
}
listen();

setTimeout(() => {
  event.message = 'Hello there';
  event.notify();
}, 1000);

FAQs

Package last updated on 20 Feb 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc