08慕课网《进击Node.js基础》事件events

Posted 言凡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了08慕课网《进击Node.js基础》事件events相关的知识,希望对你有一定的参考价值。

引用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的主要内容,如果未能解决你的问题,请参考以下文章

05慕课网《进击Node.js基础》HTTP概念进阶

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

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

慕课网学习node.js

Node.js进击基础一(5-11事件模块)

QQ面板拖拽(慕课网DOM事件探秘)(下)