https://github.com/socketcluster/async-stream-emitter
EventEmitter using async iterable streams
https://github.com/socketcluster/async-stream-emitter
Last synced: 9 months ago
JSON representation
EventEmitter using async iterable streams
- Host: GitHub
- URL: https://github.com/socketcluster/async-stream-emitter
- Owner: SocketCluster
- License: mit
- Created: 2018-12-23T14:40:46.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-10-21T05:23:09.000Z (over 2 years ago)
- Last Synced: 2025-05-28T03:50:15.259Z (10 months ago)
- Language: JavaScript
- Size: 31.3 KB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# async-stream-emitter
EventEmitter using ConsumableStream.
## Main methods:
- emit(eventName, data)
- listener(eventName)
- closeListener(eventName)
- closeAllListeners()
- killListener(eventName)
- killAllListeners()
- getListenerBackpressure(eventName)
- getAllListenersBackpressure()
## Usage examples
```js
let emitter = new AsyncStreamEmitter();
(async () => {
await wait(10);
emitter.emit('foo', 'hello');
// This will cause all for-await-of loops for that event to exit.
// Note that you can also use the 'break' statement inside
// individual for-await-of loops.
emitter.closeListener('foo');
})();
(async () => {
for await (let data of emitter.listener('foo')) {
// data is 'hello'
}
console.log('The listener was closed.');
})();
// Utility function.
function wait(duration) {
return new Promise((resolve) => {
setTimeout(() => {
resolve();
}, duration);
});
}
```