A little useful emitter.
npm install --save @tawaship/emitter
import { Emitter } from '@tawaship/emitter';
// or
const { Emitter } = require('@tawaship/emitter');
git clone https://github.com/tawaship/Emitter
cd Emitter
npm install
npm run build
<script src="/path/to/dist/Emitter.min.js"></script>
const f = a => {
console.log('ev', a);
};
new Emitter()
.on('ev', f)
.emit('ev', 1) // ev 1
.off('ev', f)
.emit('ev', 1) // (nothing)
new Emitter()
.once('ev', a => {
console.log('ev', a);
})
.emit('ev', 1) // ev 1
.emit('ev', 1) // (nothing)
new Emitter()
.on('ev', (...args) => {
console.log('ev', ...args);
})
.emit('ev', 1, 2, 3, 4, 5, 6, 7) // ev 1 2 3 4 5 6 7
new Emitter()
.on('ev', function(a) {
console.log(this, a);
})
.cemit('ev', {hoge: 1}, 2) // {hoge: 1} 2
However, using the arrow function invalidates the context specification.
// on window
new Emitter()
.on('ev', a => {
console.log(this, a);
})
.cemit('ev', {hoge: 1}, 2) // Window 2
new Emitter()
.on('ev', a => {
console.log('ev', a);
})
.on('ev', a => {
console.log('ev', a);
})
.on('ev2', a => {
console.log('ev', a);
})
.on('ev2', a => {
console.log('ev', a);
})
.clear('ev')
.emit('ev', 1) // (nothing)
.emit('ev2', 1) // ev 1, ev 1
new Emitter()
.on('ev', a => {
console.log('ev', a);
})
.on('ev2', a => {
console.log('ev', a);
})
.on('ev3', a => {
console.log('ev', a);
})
.on('ev4', a => {
console.log('ev', a);
})
.clear()
.emit('ev', 1) // (nothing)
.emit('ev2', 1) // (nothing)
.emit('ev3', 1) // (nothing)
.emit('ev4', 1) // (nothing)
Generated using TypeDoc