Node.js_1

1.添加EventEmitter模块

var EventEmitter = require(‘events‘).EventEmitter

2.实例一个EventEmitter对象

var life = new EventEmitter()

3.可通过.setMaxListeners()来修改最大监听数,默认10个

life.setMaxListeners(11)

4.事件监听有两种方法,两种方式

function water(who){
    console.log(‘给 ‘ + who +‘ 倒水‘)
}

// addEventListener
life.on(‘求安慰‘,water)

life.on(‘求安慰‘,function(who){
    console.log(‘给 ‘ + who +‘ 揉肩‘)
})

5.移除一个监听事件,需要在 life.emit(‘求安慰‘,‘东晖‘)  之前才有用,并且只能移除具名函数

life.removeListener(‘求安慰‘,water)

6移除所有‘求安慰’的事件

life.removeAllListeners(‘求安慰‘) 

7触发事件

life.emit(‘求安慰‘,‘东晖‘)
life.emit(‘求溺爱‘,‘妹子‘)

8查看是否被监听(查看时所有事件会再触发一遍,why?)

var hasConfortListener = life.emit(‘求安慰‘,‘东晖‘)
var hasPlayedListener = life.emit(‘求溺爱‘,‘妹子‘)
var hasLovedListener = life.emit(‘求玩坏‘,‘ni ‘)

console.log(life.emit(‘求安慰‘,‘东晖‘))
console.log(life.emit(‘求溺爱‘,‘妹子‘))
console.log(life.emit(‘求玩坏‘,‘ni ‘))

9查看监听个数,需要具体的名字,有两种方法

console.log(life.listeners(‘求安慰‘).length)  //方法一
console.log(EventEmitter.listenerCount(life,‘求溺爱‘))  //方法二

整个Demo:

// 添加EventEmitter模块
var EventEmitter = require(‘events‘).EventEmitter

//实例一个EventEmitter对象
var life = new EventEmitter()

//可通过.setMaxListeners()来修改最大监听数,默认10个
life.setMaxListeners(11)

function water(who){
    console.log(‘给 ‘ + who +‘ 倒水‘)
}

// addEventListener
life.on(‘求安慰‘,water)

life.on(‘求安慰‘,function(who){
    console.log(‘给 ‘ + who +‘ 揉肩‘)
})

life.on(‘求安慰‘,function(who){
    console.log(‘给 ‘ + who +‘ 洗衣‘)
})

life.on(‘求溺爱‘,function(who){
    console.log(‘给 ‘ + who +‘ 买衣服‘)
})

// 移除一个监听事件,需要在 life.emit(‘求安慰‘,‘东晖‘)  之前才有用,并且只能移除具名函数
life.removeListener(‘求安慰‘,water)

//移除所有‘求安慰’的事件
life.removeAllListeners(‘求安慰‘) 

// 触发事件
life.emit(‘求安慰‘,‘东晖‘)
life.emit(‘求溺爱‘,‘妹子‘)

/*// 查看是否被监听
var hasConfortListener = life.emit(‘求安慰‘,‘东晖‘)
var hasPlayedListener = life.emit(‘求溺爱‘,‘妹子‘)
var hasLovedListener = life.emit(‘求玩坏‘,‘ni ‘)

console.log(life.emit(‘求安慰‘,‘东晖‘))
console.log(life.emit(‘求溺爱‘,‘妹子‘))
console.log(life.emit(‘求玩坏‘,‘ni ‘))
*/

// 查看监听个数,需要具体的名字,有两种方法
console.log(life.listeners(‘求安慰‘).length)  //方法一
console.log(EventEmitter.listenerCount(life,‘求溺爱‘))  //方法二
时间: 2024-08-27 17:01:33

Node.js_1的相关文章

Node.js_1.1

Node.js简介 Node.js是一个能够在服务器端运行JavaScript的开源代码.跨平台JavaScript运行环境 Node采用Google开发的V8引擎运行js代码,使用事件驱动.非阻塞和异步I/O模型等技术来提高性能,可优化应用程序的传输量和规模 Node大部分基本模块都用JavaSprit编写.在Node出现之前JS通常作为客户端程序设计语言使用,以JS写出的程序通常在用户的浏览器上运行 安装Node环境 查看当前Node环境版本号 node --version 下载:https

node.js的安装及配置

一.安装 直接在浏览器搜索node.js,在官网上下载(一般旧版的更加稳定,比如下载4.4.7版本) 点击DOWNLOADS 往下翻,点击Previous Release Windows下载msi(64位/32位) 根据提示一步步安装,安装之后的文件夹如下: 在cmd命令行下输入node -v,如果出现如下,说明安装成功: 二.关于配置 在安装路径下新建两个文件夹: 创建完两个空文件夹之后,打开cmd命令窗口,输入 npm config set prefix "D:\Program Files

Node.js: Extend and Maintain Applications + large scale

https://blog.risingstack.com/node-js-mysql-example-handling-hundred-gigabytes-of-data/ My secondary goal with this article is to help you decide if Node.js + MySQL is a good fit for your needs, and to provide help with implementing such a solution. h

Puppet node节点的特性(十二)

前言: 生产机器很多通常会新建nodes.pp文件和site.pp文件平级,存放于/etc/puppet/manifests/nodes.pp文件,这种方法比较常用.当然也有其他办法直接写入site.pp文件. nodes.pp文件主机匹配,支持正则表达式和继承. //:正则匹配 "":精确匹配 inherits:继承 实例: 先正则匹配然后在精确匹配. node /sh-(proxy|web)\d+/ {   case $::hostname {     "sh-proxy

1.node.js windows环境搭建

作为服务端运行javascript的平台的NodeJs,把前台javascript移到了服务器端,Google V8引擎使其运行效率非常高,它可以异步,无任何阻塞运行程序.nodejs包含http服务器,可以为我们实现 web系统设计,客户端javascript编译器,等一系列的功能. 工具/原料 windows系统电脑 ,电脑可以上网 方法/步骤 下载windows平台nodejs环境安装包,百度一下nodejs官网,找到DOWNLOADS点击,找到Windows Installer 如果为6

hidden node and exposed node problem

Exposed node problem In wireless networks, theexposed node problem occurs when a node is prevented from sending packets to other nodes because of a neighboring transmitter. Consider an example of 4 nodes labeled R1, S1, S2, and R2, where the two rece

在Node.js中使用RabbitMQ系列二 任务队列

在上一篇文章在Node.js中使用RabbitMQ系列一 Hello world我有使用一个任务队列,不过当时的场景是将消息发送给一个消费者,本篇文章我将讨论有多个消费者的场景. 其实,任务队列最核心解决的问题是避免立即处理那些耗时的任务,也就是避免请求-响应的这种同步模式.取而代之的是我们通过调度算法,让这些耗时的任务之后再执行,也就是采用异步的模式.我们需要将一条消息封装成一个任务,并且将它添加到任务队列里面.后台会运行多个工作进程(worker process),通过调度算法,将队列里的任

node.js搭建代理服务器请求数据

1.引入node.js中的模块 1 var http = require("http"); 2 var url = require("url"); 3 var qs = require("querystring"); 2.创建服务器 //用node中的http创建服务器 并传入两个形参 http.createServer(function(req , res) { //设置请求头 允许所有域名访问 解决跨域 res.setHeader("

第十章—DOM(0)—NODE类型

DOM1定义了一个node接口,该接口由DOM的所有节点类型实现. 所有的节点都存在这样或那样的关系.在HTML中,head,body可以看出是html的子元素,html是head,body的父元素,而head,body互为同胞元素. 这里要注意一个概念:nodeList 输出: 如下例子: 1 <div id="myDiv"> </div><!-- 此处有空格 --> 2 <script> 3 var div = document.ge