当前位置: 首页 > news >正文

中山英文网站建设东莞做网页建站公司

中山英文网站建设,东莞做网页建站公司,江苏大都建设工程有限公司网站,凡网站建设来自:https://juejin.cn/post/7285915718666354723 和 https://nodejs.cn/api/events.html Nodejs核心API都是采用异步事件驱动架构,在该架构中,某些类型的对象(触发器)触发命名事件,导致调用Function对象(…

来自:https://juejin.cn/post/7285915718666354723 和 https://nodejs.cn/api/events.html
Nodejs核心API都是采用异步事件驱动架构,在该架构中,某些类型的对象(触发器)触发命名事件,导致调用Function对象(监听器),就是通过有效的方法来监听事件的变化,并在变化时执行相应的动作。例如:当文件被打开时,fs.ReadStream触发一个事件;只要数据可供读取,‘流’就会触发一个事件
所有触发事件的对象都是EventEmitter类的实列,这些对象暴露了eventEmitter.on()函数,允许将一个或多个函数绑定到对象触发的命名事件,当EventEmitter对象触发事件时,将同步调用附加到该特定事件的所有函数,调用的监听器返回的任何值都将被忽略和丢弃

nodejs的事件模型

Nodejs事件模型采用了发布订阅模式(Publish-Subscribe Pattern, pub-sub),又叫观察者模式,它定义了一种一对多的关系,让多个订阅者同时监听某一个发布者
在这里插入图片描述
监听消息数量默认是10个

// EventEmitter 是一个允许你订阅和发布事件的类
const EventEmitter = require('events')
// 定义一个新的类继承自 EventEmitter
class MyEmitter extends EventEmitter{}
const myEmitter = new MyEmitter()
// 监听名为event的事件
myEmitter.on('event', (data)=>{console.log('an event occurred1!', data)
})
myEmitter.on('event', (data)=>{console.log('an event occurred2!', data)
})
myEmitter.on('event', (data)=>{console.log('an event occurred3!', data)
})
myEmitter.on('event', (data)=>{console.log('an event occurred4!', data)
})
myEmitter.on('event', (data)=>{console.log('an event occurred5!', data)
})
myEmitter.on('event', (data)=>{console.log('an event occurred6!', data)
})
myEmitter.on('event', (data)=>{console.log('an event occurred7!', data)
})
myEmitter.on('event', (data)=>{console.log('an event occurred8!', data)
})
myEmitter.on('event', (data)=>{console.log('an event occurred9!', data)
})
myEmitter.on('event', (data)=>{console.log('an event occurred10!', data)
})
// 调用.emit() 方法来触发 'event' 事件。一旦这个事件被触发,所有注册为该事件监听器的回调函数都会被执行。在这个例子中,触发事件会导致控制台输出 'an event occurred!'
myEmitter.emit('event','派发的值event data')//派发事件

在这里插入图片描述

myEmitter.setMaxListeners(数量)

可以通过myEmitter.setMaxListeners(数量),来解除限制

myEmitter.setMaxListeners(20)//设置最大监听器数量为20

once只监听一次

即使emit派发多次,使用once也只会监听一次

// EventEmitter 是一个允许你订阅和发布事件的类
const EventEmitter = require('events')
// 定义一个新的类继承自 EventEmitter
class MyEmitter extends EventEmitter{}
const myEmitter = new MyEmitter()
// 监听名为event的事件
myEmitter.once('event', (data) =>{console.log('监听一次', data)
})
myEmitter.emit('event','派发的值event data')//派发事件
myEmitter.emit('event','派发的值event data1')//派发事件

在这里插入图片描述

off取消监听

const EventEmitter = require('events')
// 定义一个新的类继承自 EventEmitter
class MyEmitter extends EventEmitter{}
const myEmitter = new EventEmitter()
const fn = (msg) => {console.log(msg)
}
// 监听名为event的事件
myEmitter.on('event', fn)
myEmitter.off('event', fn)//取消监听
myEmitter.emit('event','派发的值event data')//派发事件
myEmitter.emit('event','派发的值event data1')//派发事件

应用

在process中用到了events
process.once
在这里插入图片描述
process.on
在这里插入图片描述

http://www.zhongyajixie.com/news/40803.html

相关文章:

  • 代理国外网站正规推广平台
  • 做网站是什么鬼自动推广引流app
  • 网站站点怎么做群排名优化软件官网
  • 武汉php做网站seo岗位工作内容
  • 网站怎么做qq登录界面上海优化排名网站
  • 专业婚纱摄影网站制作seo模拟点击
  • 关键词排名优化网站企业文化建设方案
  • 总算把网站设计好了什么是百度推广
  • flashfxp发布网站网络运营工作内容
  • 信誉好的中山网站建设2023年5月份病毒感染情况
  • 涉密项目单位网站建设流程网站优化外包多少钱
  • 励志故事网站源码网络营销应用方式
  • 一站式做网站哪家专业seo自动工具
  • 做网站连带责任合肥网络推广网络运营
  • 国产一级a做爰片免费网站绍兴网站快速排名优化
  • 网站建设哪种语言好品牌策略
  • 网站多大指数工具
  • 怎么做一个企业网站保定seo网络推广
  • 做网站ui设计多少钱怎么自己建立网站
  • ftp上传网站 需要什么文件刷粉网站推广马上刷
  • 株洲政府建设网站seo公司 杭州
  • 关于加强网站建设的建议整合营销传播成功案例
  • 廊坊小程序公司短视频seo代理
  • 网站模板 代码免费沈阳关键词优化报价
  • 网站备案身份证百度广告投放平台叫什么
  • 公司网站手机版模板seo资源是什么意思
  • 男女直接做视频网站网站制作教程视频
  • 做一个独立网站需要多少钱品牌宣传策略有哪些
  • lindberg定制网站短视频培训机构排名
  • 兰州市做网站的企业有哪些百度手机导航官方新版