NAME
Mojo::EventEmitter - Event emitter base class
SYNOPSIS
sub poke {
my $self = shift ;
$self ->emit( roar => 3);
}
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 ) = @_ ;
...
});
|
This is a special event for errors, it will not be emitted directly by this class but is 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.
catch
$e = $e -> catch ( sub {...});
|
Subscribe to "error" event.
$e ->on( error => sub {...});
|
emit
$e = $e ->emit( 'foo' );
$e = $e ->emit( 'foo' , 123);
|
Emit event.
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.
$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.