glot
Version:
EventEmitter with Promises and Generators
80 lines (53 loc) • 1.27 kB
Markdown
`npm install glot`
```javascript
let events = new Glot();
```
```javascript
//Basic listener
events.on('foo', (data) => {});
//Promise listener
events.on('foo', (data) => {
return new Promise((resolve, reject) => {
setTimeout(()=> resolve(data), 2000);
});
});
//Generator listener
events.on('foo', function* (data){
yield wait(2000);
return { respose: 'foo' };
});
```
```javascript
//Use emit() to emit on basic listeners
events.emit('foo', { bar: 'bam' });
//Use pmit() to emit on promises listeners
events.pmit('foo', { bar: 'quxx' })
.then((data) => console.log(data))
.catch((err) => console.log(err));
//Use gmit() to emit on generator listeners
function* foo() {
yield events.gmit('foo', { bar: 'baz' });
}
var f = foo();
foo.next();
```
Note: First argument will return name of event emitted
```javascript
events.on('*', (evt, data) => {});
//Wildcard promise listener
events.on('*', (evt, data) => {
return new Promise((resolve, reject) => {
resolve(data);
});
});
//Wildcard generator listener
events.on('*', function* (evt, data){
yield wait(2000);
return data;
});
```