美文网首页
nodejs入门总结二:事件驱动

nodejs入门总结二:事件驱动

作者: 牛妈代代 | 来源:发表于2022-04-09 19:28 被阅读0次
三、nodejs事件驱动

Node.js 是单进程单线程应用程序,但是因为 V8 引擎提供的异步执行回调接口,通过这些接口可以处理大量的并发,所以性能非常高。
Node.js 使用事件驱动模型,当web server接收到请求,就把它关闭然后进行处理,然后去服务下一个web请求。当这个请求完成,它被放回处理队列,当到达队列开头,这个结果被返回给用户。这个模型非常高效可扩展性非常强,因为 webserver 一直接受请求而不等待任何读写操作。(这也称之为非阻塞式IO或者事件驱动IO)在事件驱动模型中,会生成一个主循环来监听事件,当检测到事件时触发回调函数。

events事件模块:
只有一个模块,EventEmitter核心就是事件触发emite,和事件监听on;

应用
(1)const event=require("events")模块
(2)new一个新的对象new evnet.EventEmitter();
(3)on("eventName",function(error,data){})创建监听器,一个事件可以创建多个监听
(4)emit("eventName")触发事件
(5)addListener("eventName",function(error,data){})也可以监听事件
(6)listenerCount("eventName")获取监听器个数,
getMaxListeners()//获取监听器数量;
setMaxListeners(n)//设置监听器数量;
eventNames() 获取当前触发器实例注册的所有事件名
listeners(事件名称)获取指定事件下的所有监听器
rawListeners(事件名称) 获取指定事件下的所有监听器

(7)移除监听事件的监听器;removeListener("eventName",fun),removeAllListener();off(事件名称,监听器名称)
(8)once():只触发一次,被移除;
(9)prependListener(事件名称,监听器):优先触发,事件监听器;
(10)prependOnceListener(事件名称,监听器) 触发一次 触发后移除
(11)EventEmitter.defaultMaxListeners = 8 每一个触发器实例 同一个事件最多绑定10个监听器 超出报警告

触发器实例上的内部事件
(1)订阅就会触发 newListener
myEmitter.on('newListener',(eventName,listener)=>{
console.log(新增事件${eventName},listener)
})
(2)移除监听器会触发 removeListener
myEmitter.on('removeListener',(eventName,listener)=>{
console.log(移除事件${eventName},listener)
})

事件触发,放在调用堆栈中;定时器结束时,函数会被放入“消息队列”中
事件循环会赋予调用堆栈优先级,它首先处理在调用堆栈中找到的所有东西,一旦其中没有任何东西,便开始处理消息队列中的东西。

setTimeout、fetch、或其他的函数是使用的是消息队列:回调函数放在调用堆栈的末尾;
promise,async/await函数使用的是作业队列:前函数结束之前 resolve 的 Promise 会在当前函数之后被立即执行。
process.nextTick(fun):事件循环进行一次完整行程时我们成为一个滴答,传入的函数则指示引擎在当前操作结束(在下一个事件循环滴答开始之前)时调用此函数:
回掉函数的第一个参数是err,如果正确返回null;

相关文章

  • nodejs入门总结二:事件驱动

    三、nodejs事件驱动 Node.js 是单进程单线程应用程序,但是因为 V8 引擎提供的异步执行回调接口,通过...

  • Node-1

    事件驱动 NodeJs是单线程、非阻塞I/O的事件驱动;不同于Java/PHP/.net等服务器语言,NodeJs...

  • Nodejs事件循环

    Nodejs是基于事件驱动的,实际上与dom操作的操作事件差不多,诸如onclick之流 Nodejs定义事件需要...

  • 02.NodeJs基本语法

    一.认识NodeJs 1.NodeJs的事件驱动和异步IO 缺点: 2.npm介绍: ​ 是nodejs自带的...

  • 编写事件驱动模型

    Nodejs本身是基于事件驱动的,这个都知道。如果你看过Nodejs events模块,应该很了解Nodejs是如...

  • NodeJs事件驱动和非阻塞机制详解

    NodeJs事件驱动和非阻塞机制详解 NodeJs强调错误优先 因为事件的操作大多数都是异步的方式,无法通过try...

  • node事件驱动机制

    title: nodejs事件驱动机制date: 2020-08-11 17:07:37tags: node 事件...

  • nodejs——事件驱动编程

    事件驱动编程/异步编程——当事件发生时由系统调用的函数来取代应用返回值的编程风格,这个nodejs的显著特征之一。...

  • Nodejs是什么

    不是一门语言 nodejs 是基于Chrome V8 的JavaScript运行环境nodejs 是事件驱动、非阻...

  • nodejs是什么

    nodejs是什么 nodejs是js runtime使用事件驱动 和 非阻塞I/O 模型 非阻塞I/O 阻塞:...

网友评论

      本文标题:nodejs入门总结二:事件驱动

      本文链接:https://www.haomeiwen.com/subject/miapsrtx.html