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