Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pixcai/yatem
Yet Another Tiny Event Emitter
https://github.com/pixcai/yatem
Last synced: 26 days ago
JSON representation
Yet Another Tiny Event Emitter
- Host: GitHub
- URL: https://github.com/pixcai/yatem
- Owner: pixcai
- License: gpl-3.0
- Created: 2016-08-23T16:23:16.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2016-08-25T15:19:30.000Z (about 8 years ago)
- Last Synced: 2024-10-02T03:20:12.816Z (about 1 month ago)
- Language: HTML
- Size: 24.4 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# yatem
Yet Another Tiny Event Emitter
[![Build Status](https://travis-ci.org/pixcai/yatem.svg?branch=master)](https://travis-ci.org/pixcai/yatem)
[![npm](https://img.shields.io/npm/v/yatem.svg?style=flat-square)](https://www.npmjs.com/package/yatem)
[![npm](https://img.shields.io/npm/dt/yatem.svg?style=flat-square)](https://www.npmjs.com/package/yatem)
[![npm](https://img.shields.io/npm/l/yatem.svg?style=flat-square)](https://www.npmjs.com/package/yatem)## Install
Node
```
npm install yatem --save
```Browser
```html```
## Usage
Node
```js
var yatem = require('yatem');var e1 = yatem.on('my-event1', function () {
console.log('This is event: my-event1');
});
var e2 = yatem.on('my-event1', function (args) {
console.log('This is also event: my-event1, and args is: ', args);
});
var e3 = yatem.once('my-event3', function () {
console.log('This is event: my-event3');
});yatem.emit('my-event1', 'hello, world');
// output:
// > This is event: my-event1
// > This is also event: my-event1, and args is: hello, worldyatem.off(e2);
yatem.emit('my-event1'); // or yatem.emit(e1)
// output:
// > This is event: my-event1yatem.emit('my-event3');
// output:
// > This is event: my-event3yatem.emit('my-event3'); // again, it will do nothing
```Browser
```js
yatem.on('my-event', function () {
console.log('This is event: my-event');
});yatem.emit('my-event');
// output:
// > This is event: my-event
```## Instance Methods
### on(event, callback[, context])
Subscribe to an event
* `event` - the name of the event to subscribe
* `callback` - the function to call when event is emitted
* `context` - (OPTIONAL) - the context to bind the event callbackIf subscribe successful, return an object, that can use for yatem.off() and yatem.emit(). Otherwise return false.
```js
var e1 = yatem.once('my-event', callback); // typeof e1 === 'object'
var e2 = yatem.on('my-event', callback); // e2 === falseyatem.emit(e1); // Ok
yatem.emit(e2); // Do nothing
```### once(event, callback[, context])
Subscribe to an event only **once**
* `event` - the name of the event to subscribe
* `callback` - the function to call when event is emitted
* `context` - (OPTIONAL) - the context to bind the event callbackIf subscribe successful, return an object, that can use for yatem.off() and yatem.emit(). Otherwise return false.
### off(event)
Unsubscribe from an event.
* `event` - the name of the event to unsubscribe or value that return from yate.on() or yate.once()
If event is null or undefined, and not boolean type, it will unsubscribe all events.
```js
var e1 = yatem.on('my-event', callback1);
var e2 = yatem.on('my-event', callback2);yatem.off(); // Unsubscribe all events, or use yatem.off(null)
// Notice: yatem.off(false) WILL NOT unsubscribe all events, it will do nothingyatem.emit(e1); // Do nothing
yatem.emit(e2); // Do nothing
```### emit(event[, arguments...])
Trigger a named event or all events
* `event` - the event name to emit
* `arguments...` - any number of arguments to pass to the event subscribersIf event is null or undefined, and not boolean type, it will emit all events.
```js
var e1 = yatem.on('my-event', callback1);
var e2 = yatem.on('my-event', callback2);yatem.emit(); // Emit all events, or use yatem.emit(null[, arguments...])
// Notice: yatem.emit(false) WILL NOT emit any events, it will do nothing
```## Test
```
npm install
npm test
```## License
GPL-3.0