Simple async event handling and interception.
npm install --save async-event
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)
});
})
});
The constructor.
Param | Type | Description |
---|---|---|
value | any |
The initial value |
promise | Promise |
An optional starting promise |
A function that can perform a sync or async task. Handlers are executed in serial order.
Param | Type | Description |
---|---|---|
handler | Function |
The intercept function |
Gets the initial value the event initialized with.
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.
Param | Type | Description |
---|---|---|
fn | Function |
The promise function |
Same as then
except the catch equivalent.
Param | Type | Description |
---|---|---|
fn | Function |
The promise function |