emit

更新时间:2022-11-27 09:35:36 阅读: 评论:0


2022年11月27日发(作者:rver是什么意思)

EventEmitter

Node的事件模块中,⽬前只包含⼀个类:EventEmitter。这个类在Node的内置模块中被⼤量使⽤,在Node中,所有能

触发事件的对象都是EventEmitter类的实例。要使⽤EventEmitter,⾸先必须要继承它。

⼀.从EventEmitter类继承

问题

你希望通过事件驱动的⼿段来解决问题。你有⼀个类你希望在异步事件发⽣的时候来操作它。

解决办法

你需要创建⼀个基于EventEmitter类的⾃定义类,基于EventEmitter类得到的⽰例,都绑定了⼀个监听器,()⽤于监听事

件,()⽤于触发事件。下⾯是⼀个⾳乐播放器的实例:

⾸先实现对EventEmitter类的继承

constEventEmitter=require('events');

//所有的构造函数都必须继承⾃EventEmitter类;

classMusicPlayerextendsEventEmitter{};

//再通过这个构造函数来创建触发事件的对象

letmusicPlayer=newMusicPlayer();

通过继承创建的实例对象有绑定监听器,可以调⽤on,emit⽅法

letAudioDevice={

play:function(track){

//

},

stop:function(){

//

}

}

//监听事件

('play',function(track){

g=true;

(track);

})

//监听事件

('stop',function(track){

g=fal;

();

});

('play','TheRoots-TheFire');

tTimeout(function(){

//emit触发事件

('stop')

},1000);

⼆.添加多个监听器

我们可以给事件添加多个监听器,⽐如上⾯的⾳乐播放器,我们在play触发时需要做些其他的事情⽐如⽤户界⾯需要更新等。对play事件添加⼀个

新的监听器就能轻松实现。

('play',function(track){

g=true;

(track);

});

//添加新的监听器

('play',function(track){

('添加新的监听器')

});

三.移除监听器

Listener(eventname,fn):移除⼀个监听器

AllListeners([eventName]):移除所有的监听器

letplayFn1=function(track){

g=true;

(track);

}

('play',playFn1);

//移除监听器

EventListener('play',playFn1())

四.错误处理

通过监听error事件,来进⾏错误处理。

//错误处理

letplayFn1=function(track){

g=true;

(track);

//这⾥如果出现错误,就触发error事件

('error','unabletoplay')

}

('play',playFn1);

('error',function(err){

(err);

})

本文发布于:2022-11-27 09:35:36,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/30207.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:shelf
标签:emit
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图