https://github.com/alexeveritt/jsemitter
Typescript Event Emitter class
https://github.com/alexeveritt/jsemitter
Last synced: 3 months ago
JSON representation
Typescript Event Emitter class
- Host: GitHub
- URL: https://github.com/alexeveritt/jsemitter
- Owner: alexeveritt
- License: mit
- Created: 2017-12-03T10:42:45.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-30T20:20:15.000Z (over 2 years ago)
- Last Synced: 2024-12-06T21:06:01.407Z (6 months ago)
- Language: TypeScript
- Size: 139 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# JSEmitter
Lightweight Event Emitter class written in typescript that works on both client and server with no dependencies## Usage
The event emitter can be used with both vanilla js and typescriptTypescript Example
```typescript
import {JSEmitter} from "jsemitter";class Clock extends JSEmitter {
constructor() {
super();
(window).setInterval(this.tickTock, 1000);
}private tickTock(): void {
this.emit('onTick', new Date())
}
}let clock = new Clock();
// subscribe to the onTick Event
clock.on('onTick', (theDate) => {
console.log(`The time is ${theDate}`);
this.count++;
if (this.count > 10) {
// unsubscribe after 10 seconds
clock.off('onTick');
console.log('Clock stopped after 10 seconds');
}
});```
## Methods
### on
Fires a callback when an event is emitted that matches the key**Function Signature**
```javascript
on(key, callback)
````**Example**
```javascript
on('something-happened', (data)=>{
// event fired
// do something with the data
})
````
### once
Fires a callback one time when an event is emitted that matches the key. After the event is is fired the callback is removed and will not fire again**Function Signature**
```javascript
once(key, callback)
````**Example**
```javascript
once('something-happened', (data)=>{
// event fired
// do something with the data, it won't be fired again
})
````### many
Fires a callback a specific number of times time when an event is emitted that matches the key. After the event is is fired the callback is removed and will not fire again**Function Signature**
```javascript
once(key, callback, count)
````**Example**
```javascript
once('something-happened', (data)=>{
// This event will fire 7 times and then be removed
}, 7)
````### emit
Sends an event to any callback listening to the key**Function Signature**
```javascript
emit(key, data)
````**Example**
```javascript
emit('something-happened', 'Hello');
emit('something-else', {someObject:true});
````### off
Removes a specific callback associated with the key**Function Signature**
```javascript
off(key, callback)
````**Example**
```javascript
off('something-happened', (data)=>{})
````### offAll
Removes all callbacks attached to the event emitter**Function Signature**
```javascript
offAll()
````**Example**
```javascript
offAll()
````### offKey
Removes a callback associated with the key
**Function Signature**
```javascript
offKey(key)
````**Example**
```javascript
off('something-happened')
````