Mojo::EventEmitter-事件发射器基类
包装Cat;使用Mojo::Base“Mojo::EventEmitter”,-signatures;#发射事件子提示($self){$self->emit(吼叫=>3)}包装总管;#订阅事件我的$老虎=猫->新的;$tiger->on(吼叫=>sub($tiger,$times){对1..$times}说“RAWR!”);$老虎->戳;
Mojo::EventEmitter是事件发出对象的简单基类。
Mojo::EventEmitter可以发出以下事件。
上的$e->(错误=>sub($e,$err){…});
这是一个特殊的错误事件,它不会由这个类直接发出,但如果未处理,则是致命的。子类可以选择发出它,但不需要这样做。
$e->on(error=>sub($e,$err){说“This looks bad:$err”});
Mojo::EventEmitter从继承所有方法Mojo::基础并实现了以下新功能。
$e=$e->catch(子{…});
订阅“错误”事件。
#较长版本上的$e->(错误=>sub{…});
$e=$e->emit('foo');$e=$e->发射('o',123);
发射事件。
我的$bool=$e->has_subscribers('foo');
检查事件是否有订阅者。
我的$cb=$e->在(foo=>sub{…})上;
订阅事件。
$e->on(foo=>sub($e,@args){…});
我的$cb=$e->一次(foo=>sub{…});
订阅事件并在事件发出一次后再次取消订阅。
$e->一次(foo=>sub($e,@args){…});
我的$subscribers=$e->订户('fo');
事件的所有订阅者。
#取消订阅最后一个订阅者$e->取消订阅(foo=>$e->订阅者('fo')->[-1]);#订户变更单@{$e->subscribers('foo')}=反转@{$e->订阅者('foo’)};
$e=$e->取消订阅('foo');$e=$e->取消订阅(foo=>$cb);
取消订阅活动。
您可以设置MOJO_EVENTEMITTER_DEBUG公司
将一些高级诊断信息打印到的环境变量STDERR公司
.
MOJO_EVENTEMITTER_DEBUG=1
Mojolicious公司,Mojolicious::指南,https://mojolicio.org网站.