Provided by: libmojolicious-perl_4.63+dfsg-1_all
NAME
Mojo::EventEmitter - Event emitter base class
SYNOPSIS
package Cat; use Mojo::Base 'Mojo::EventEmitter'; # Emit events sub poke { my $self = shift; $self->emit(roar => 3); } package main; # Subscribe to events my $tiger = Cat->new; $tiger->on(roar => sub { my ($tiger, $times) = @_; say 'RAWR!' for 1 .. $times; }); $tiger->poke;
DESCRIPTION
Mojo::EventEmitter is a simple base class for event emitting objects.
EVENTS
Mojo::EventEmitter can emit the following events. error $e->on(error => sub { my ($e, $err) = @_; ... }); Emitted for event errors, fatal if unhandled. $e->on(error => sub { my ($e, $err) = @_; say "This looks bad: $err"; });
METHODS
Mojo::EventEmitter inherits all methods from Mojo::Base and implements the following new ones. emit $e = $e->emit('foo'); $e = $e->emit('foo', 123); Emit event. emit_safe $e = $e->emit_safe('foo'); $e = $e->emit_safe('foo', 123); Emit event safely and emit "error" event on failure. has_subscribers my $bool = $e->has_subscribers('foo'); Check if event has subscribers. on my $cb = $e->on(foo => sub {...}); Subscribe to event. $e->on(foo => sub { my ($e, @args) = @_; ... }); once my $cb = $e->once(foo => sub {...}); Subscribe to event and unsubscribe again after it has been emitted once. $e->once(foo => sub { my ($e, @args) = @_; ... }); subscribers my $subscribers = $e->subscribers('foo'); All subscribers for event. # Unsubscribe last subscriber $e->unsubscribe(foo => $e->subscribers('foo')->[-1]); unsubscribe $e = $e->unsubscribe('foo'); $e = $e->unsubscribe(foo => $cb); Unsubscribe from event.
DEBUGGING
You can set the MOJO_EVENTEMITTER_DEBUG environment variable to get some advanced diagnostics information printed to "STDERR". MOJO_EVENTEMITTER_DEBUG=1
SEE ALSO
Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.