1.0.0 • Published 8 years ago

async-event v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
8 years ago

async-event

Simple async event handling and interception.

Install

npm install --save async-event

Usage

Requires a promise implementation to be global

var AsyncEvent = require('async-event');

var user = { id: 123 };
var event = new AsyncEvent(user);

myPubSub.publish('my-event', event);

event
  .then(function() {
    console.log('Passed async validation!');
  })
  .catch(function() {
    console.log('Failed async validation :(');
  });

// Some other listener

myPubSub.subscribe('my-event', function(event) {
  event.intercept(function(user) {
    return fetch('/user/123/validate', {
      method: 'POST',
      body: JSON.stringify(user)
    });
  })
});

API

AsyncEvent(value, promise) ⇒ AsyncEvent

The constructor.

ParamTypeDescription
valueanyThe initial value
promisePromiseAn optional starting promise

intercept(handler) ⇒ void

A function that can perform a sync or async task. Handlers are executed in serial order.

ParamTypeDescription
handlerFunctionThe intercept function

getValue() ⇒ any

Gets the initial value the event initialized with.

then(fn) ⇒ Promise

Delegates to the internal Promise. Subscribes to the chain at that point in time. This will not add to the chain. This can be used to perform a task that you would want to happen in parallel.

ParamTypeDescription
fnFunctionThe promise function

catch(fn) ⇒ Promise

Same as then except the catch equivalent.

ParamTypeDescription
fnFunctionThe promise function
1.0.0

8 years ago