https://github.com/aleclarson/lua-emitter
Event emitters for Lua
https://github.com/aleclarson/lua-emitter
emitter eventemitter lua
Last synced: 11 months ago
JSON representation
Event emitters for Lua
- Host: GitHub
- URL: https://github.com/aleclarson/lua-emitter
- Owner: aleclarson
- License: mit
- Created: 2018-03-31T01:20:12.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-12-05T16:59:07.000Z (over 7 years ago)
- Last Synced: 2025-03-11T12:33:50.319Z (over 1 year ago)
- Topics: emitter, eventemitter, lua
- Language: MoonScript
- Size: 7.81 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lua-emitter v0.0.3
Event emitters for Lua.
```lua
local Emitter = require('emitter')
local emitter = Emitter()
-- Arguments are variadic
function listener(a, b, c)
print('a =', a)
print('b =', b)
print('c =', c)
end
-- Listen forever
emitter:on('foo', listener)
-- Broadcast an event
emitter:emit('foo', 1, 2, 3)
-- Listen for the next event only
emitter:once('foo', function()
print('just once!')
end)
emitter:len('foo') -- 2
emitter:emit('foo')
emitter:len('foo') -- 1
-- Remove a listener (added via on or once)
emitter:off('foo', listener)
-- Remove all listeners
emitter:off('foo')
-- The event->listeners table
emitter.events
-- Set an event fallback for all emitters.
Emitter.setFallback('error', function(err, errno)
print('unhandled error:', err, errno)
end)
-- Set an event fallback for one emitter.
emitter:on('error', function(err, errno)
if emitter:len('error') == 1 then
print('unhandled error:', err, errno)
end
end)
```
Listeners are called in order of `on/once` calls.
By default, unhandled `error` and `warn` events are printed to console.