A lightweight event emitter implementation base on typescript.
Install the bd-emitter
package via npm
:
npm install bd-emitter
Install the bd-emitter
package via yarn
:
yarn add bd-emitter
import EventEmitter from 'bd-emitter';
const EventEmitter = require('bd-emitter');
import EventEmitter from 'bd-emitter';
const emitter = new EventEmitter();
emitter.on('search', function (...args) {
console.log(args);
});
setTimeout(
function () {
emitter.emit('search', 'Baidu');
},
1000
);
Register a specific callback to be called on a custom event.
import EventEmitter from 'bd-emitter';
const emitter = new EventEmitter();
const callback = function (...args) {
console.log(...args);
};
emitter.on('search', callback);
emitter.emit('search', 'Baidu AI'); // Baidu AI
Similar to on() but the callback is removed after it is invoked once
.
import EventEmitter from 'bd-emitter';
const emitter = new EventEmitter();
const callback = function (...args) {
console.log(...args);
};
emitter.once('search', callback);
emitter.emit('search', 'Baidu AI'); // Baidu AI
emitter.emit('search', 'Baidu AI'); // nothing
eventName is optional, if provided only listeners for that event name are removed, otherwise remove all events.
import EventEmitter from 'bd-emitter';
const emitter = new EventEmitter();
const callback = function (...args) {
console.log(...args);
};
emitter.on('search', callback);
emitter.emit('search', 'Baidu AI'); // Baidu AI
emitter.off('search', callback);
emitter.emit('search', 'Baidu AI'); // nothing
import EventEmitter from 'bd-emitter';
const emitter = new EventEmitter();
const callback1 = function (...args) {
console.log(...args);
};
const callback2 = function (...args) {
console.log(...args);
};
emitter.on('custom:search', callback1);
emitter.on('custom:navigation', callback2);
emitter.emit('custom:search', 'Baidu Search'); // Baidu Search
emitter.emit('custom:navigation', 'Baidu Navigation'); // Baidu Navigation
emitter.off();
emitter.emit('custom:search', 'Baidu Search'); // nothing
emitter.emit('custom:navigation', 'Baidu Navigation'); // nothing
Emits an event of the given type with the given data.
import EventEmitter from 'bd-emitter';
const emitter = new EventEmitter();
const callback = function (...args) {
console.log(...args);
};
emitter.on('search', callback);
emitter.emit('search', 'Baidu AI'); // Baidu AI
git clone git@github.com:bdwenxi/bd-emitter.git
yarn
jest
bdwenxi (bdwenxi@gmail.com)
bdwenxi (bdwenxi@gmail.com)
This project is licensed under the MIT License