引用events模块中的EventEmitter

事件的监听和发射

相同的事件发射数量有限,可以通过setMaxListeners设置峰值

var EventEmitter = require('events').EventEmitter

var life = new EventEmitter()
//加不加都没有报警告
//life.setMaxListeners(10) life.on('clickEvent',function(who){
console.log('给' + who + ' 倒水')
}) life.emit('clickEvent','汉子1')

每个emit都有返回值,表示是否有相应的监听事件
var hasClickListener = life.emit('clickEvent','汉子12')
var hasChangeListener = life.emit('changeEvent','妹子1') console.log(hasClickListener)
console.log(hasChangeListener)
console.log(hasPutListener)
取消监听
//可以放到 on 和 emit 后面
function water(who){
console.log('给 ' + who + ' 倒水')
} life.on('changeEvent',water)
//还没有被取消,emit不能放到 on之前
life.emit('changeEvent','张三')
//water不可以用匿名函数,removeListener需要在emit之前
life.removeListener('changeEvent',water)
//移除所有监听,可以传递事件名作为参数
//life.removeAllListeners() var hasChangeListener = life.emit('changeEvent','妹子1')//监听被取消
var hasPutListener = life.emit('clickEvent','李白')
// //是否被监听
console.log(hasChangeListener)
console.log(hasPutListener)

监听数量
console.log('changeEvent:' + life.listeners('changeEvent').length)
console.log('clickEvent:' + life.listeners('clickEvent').length)
console.log('all:' + life.listeners.length)
//EventEmitter提供的方法
console.log('EventEmitter提供:')
console.log('changeEvent:' + EventEmitter.listenerCount(life,'changeEvent'))
console.log('clickEvent:' + EventEmitter.listenerCount(life,'clickEvent'))

08慕课网《进击Node.js基础(一)》事件events的更多相关文章

  1. 03慕课网《进击Node.js基础(一)》API-URL网址解析

    url url.parse(url,query,host);解析域名 url必须,地址字符串 query可选 host 可选:在不清楚协议时正确解析 querystring 字符串和对象之间互相解析 ...

  2. 01慕课网《进击Node.js基础(一)》Node.js安装,创建例子

    版本:偶数位为稳定版本,基数为非稳定版本 - 0.6.x - 0.7.x    - 0.8.x -0.9.x    -0.10.x  -0.11.x 概念:Node.js采用谷歌浏览器的V8引擎,用C ...

  3. 10慕课网《进击Node.js基础(一)》初识promise

    首先用最简单的方式实现一个动画效果 <!doctype> <html> <head> <title>Promise animation</titl ...

  4. 07慕课网《进击Node.js基础(一)》HTTP小爬虫

    获取HTML页面 var http = require('http') var url='http://www.imooc.com/learn/348' http.get(url,function(r ...

  5. 进击Node.js基础(二)

    一.一个牛逼闪闪的知识点Promise npm install bluebird 二.Promise实例 ball.html <!doctype> <!DOCTYPE html> ...

  6. 02慕课网《进击Node.js基础(一)》——CommonJs标准

    是一套规范管理模块 每个js 为一个模块,多个模块作为一个包 node.js和Couchdb是对其的实现: 不同于jQuery 模块:定义.标识.引用(地址/模块名称) 模块类型: 核心模块http ...

  7. 进击Node.js基础(一)

    一.前言 1:Node.js本质上是用chrome浏览器 v8引擎 使用c++编写的JS运行环境 2:相比于JS没有浏览器安全级的限制,额外提供了一些系统级的API:文件读写,进程管理,网络通信等. ...

  8. 04慕课网《进击Node.js基础(一)》HTTP讲解

    HTTP:通信协议 流程概述: http客户端发起请求,创建端口默认8080 http服务器在端口监听客户端请求 http服务器向客户端返回状态和内容 稍微详细解析: 1.域名解析:浏览器搜素自身的D ...

  9. 11慕课网《进击Node.js基础(一)》Buffer和Stream

    Buffer 用来保存原始数据 (logo.png) 以下代码读取logo.png为buffer类型 然后将buffer转化为string,新建png 可以将字符串配置: data:image/png ...

随机推荐

  1. ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [1498], [18713], [18720]

    数据库server出现ORA-00600[kcratr_nab_less_than_odr].不能open数据库 1.open数据库报ORA-00600[kcratr_nab_less_than_od ...

  2. Hadoop应用开发,常见错误

    错误1:在windows执行mr Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.had ...

  3. Windows下修改iTunes备份路径

    0.准备工作: 关闭itunes 在任务管理器中杀掉iTunes开头的服务 1,找到iTunes默认备份路径:C:\Users\xxx\AppData\Roaming\Apple Computer\M ...

  4. [agc011E]Increasing Numbers-[思考题]

    Description 传送门 Solution 依题得所有不下降数(设为a)可以拆为若干个全1数的和(如:1558=1111+111+111+111+111+1+1+1) 并且任意a所能拆出的全一数 ...

  5. Kubernetes学习之路(一)之概念和架构解析和证书创建和分发

    1.Kubernetes的重要概念 转自:CloudMan老师公众号<每天5分钟玩转Kubernetes>https://item.jd.com/26225745440.html Clus ...

  6. 【Python学习笔记之三】lambda表达式用法小结

    除了def语句之外,Python还提供了一种生成函数对象的表达式形式.由于它与LISP语言中的一个工具很相似,所以称为lambda.就像def一样,这个表达式创建了一个之后能够调用的函数,但是它返回了 ...

  7. lua编程之协程介绍

    一,lua协程简介 协程(coroutine),意思就是协作的例程,最早由Melvin Conway在1963年提出并实现.跟主流程序语言中的线程不一样,线程属于侵入式组件,线程实现的系统称之为抢占式 ...

  8. redmine on centos

    一 前言 前前后后搭建redmine,花费了很多时间.期间会遇到各种坑,因此总结下自己的方法,分享给各位童鞋. 二 操作系统  centos release 6.9 详细信息如下图:   三 安装步骤 ...

  9. Elasticsearch的停用词(stopwords)

    1.问题 在使用搜索引擎(Elasticsearch或Solr)作为应用的后台搜索平台的时候,会遇到停用词(stopwords)的问题. 在信息检索中,停用词是为节省存储空间和提高搜索效率,处理文本时 ...

  10. Python 夺大满贯!三大编程语言榜即将全部“失守”!

    有互联网创业者说: 2019年可能会是过去十年里最差的一年 但却是未来十年里最好的一年 真的是这样吗? “每月工资1w,如何赚到200w?” 同样一个问题,问不同的人会得到不同的答案. 有一类人,开始 ...