Node.js内置模块 events的基本使用
上一篇:
内置模块fs 的基本使用
上上篇:
内置模块path 的基本使用
// // events的简单使用
// const EventEmitter = require('events')
// //创建发射器
// const emitter = new EventEmitter()
// //注册事件一
// let i = function (name){
// console.log(name+"触发事件一");
// }
// // 开始监听
// emitter.on('lll',i)
// // 创建方法二
// let ii = function(name){
// console.log(name+"触发事件二");
// }
// // 注册事件二
// emitter.on('lll',ii)
// setTimeout(() => {
// //触发监听,触发回调
// emitter.emit('lll',"古月")
// // 解除监听,能解除的监听他的回调不能是匿名函数。因为解除监听的时候需要传入回调函数的名字
// emitter.off('lll',i)
// //触发监听,触发回调
// emitter.emit('lll',"古月")
// }, 2000);
// events获取注册的事件
// const EventEmitter = require('events')
// const emitter = new EventEmitter()
// let fun = function (){
// console.log("你好啊!!!");
// }
// emitter.on('fee',fun)
// emitter.on('fee',()=>{
// console.log("第二次,你好啊!!!");
// })
// emitter.on('cee',()=>{
// console.log("这个是cee的监听");
// })
// // setTimeout(() => {
// // emitter.emit('fee')
// // emitter.emit('cee')
// // }, 2000);
// //打印注册过的事件
// console.log(emitter.eventNames());
// // 注册的事件有多少个回调
// console.log(emitter.listenerCount('fee'));
// //打印注册事件的回调,返回的是一个数组
// console.log(emitter.listeners('fee'));
// const EventEmitter = require ('events')
// const eimter = new EventEmitter ()
// let fun = function (){
// console.log("fun一");
// }
// let fun2 = function (){
// console.log("fun二");
// }
// let fun3 = function (){
// console.log("fun三");
// }
// // 设置最多的回调函数
// // eimter.setMaxListeners(1)
// eimter.on('click',fun)
// // 只调用一遍
// // eimter.once('click',fun2)
// //放到全部回调的最前面去执行
// eimter.prependListener('click',fun2)
// eimter.on('scroll',fun3)
// setTimeout(() => {
// //不传参数的话全部的注册的事件都会移除(click,scroll),传入参数的话只会移除指定的注册事件
// // eimter.removeAllListeners()
// //并且只能传入一个参数
// eimter.removeAllListeners('click')
// eimter.emit('click')
// eimter.emit('click')
// eimter.emit('scroll')
// }, 1000);
// 补充知识点
// 在箭头函数中是没有this 和argument 对象的,所以会去找上一层中的this和argument 对象
//在node的一个模块中,代码是方法一个自执行函数中,不是一个箭头函数
// console.log(this);//这里打印的是一个空对象
// this.a = "你好啊"
// console.log(this);//这里打印的也是一个对象,但是里面有了一个键值对.a:"你好啊"
//模块中的this指向的是module.exports