node - 理解事件和回调

简介: node - 理解事件和回调

理解事件和回调


在Node.js应用中,事件无处不在。例如,net.Server会在每次有新连接时触发事件,fs.ReadStrem会在打开文件时触发事件,stream会在数据可读时触发事件。

在Node.js的事件机制中主要有三类角色:事件(event)、事件发射器(event Emitter)、事件监听器(Event Listener)


所有能触发事件的对象在Node.js中都是EventEmitter类的实例。这些对象有一个eventEmitter.on()函数,用于将一个或多个函数绑定到命名事件上。事件的命名通常是驼峰式的字符串。


当EventEmitter对象触发一个事件时,所有绑定在该事件上的函数都会被同步地调用

以下是一个简单的EventEmitter实例,绑定了一个事件监听器


const EventEmitter = require("events")
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter()
// 注册监听器
myEmitter.on("event", () => {
    console.log("触发事件")
)}
// 触发事件
myEmitter.emit("event")
复制代码


在上述例子中,EventEmitter()用于注册监听器,EventEmitter.emit()用于触发事件。其中,eventEmitter.on()是一个典型的异步编程模式,而且与回调函数密不可分,而回调函数就是后继传递风格的一种体现。后继传递风格是一种控制流通过参数传递的风格。简单来说就是把下一步要运行的代码封装成函数,通过参数传递的方式传给当前运行的函数。


所谓回调,就是"回头再调用"的意思。再上述例子中,myEmitter先注册了event事件,同时绑定了一个匿名的回调函数。该函数并不是立马执行,而是需要等到事件触发了以后再执行。

目录
打赏
0
0
0
0
62
分享
相关文章
掌握Node.js中的异步编程:从回调到async/await
Node.js的异步编程模型是其核心特性之一,它使得开发者能够构建高性能和高并发的应用程序。本文将带你从Node.js的异步编程基础开始,逐步深入到回调函数、Promises、以及最新的async/await语法。我们将探讨这些异步模式的原理、使用场景和最佳实践,并通过实例代码展示如何在实际项目中应用这些概念。
node中循环异步的问题[‘解决方案‘]_源于map循环和for循环对异步事件配合async、await的支持
本文探讨了在Node.js中处理循环异步操作的问题,比较了使用map和for循环结合async/await处理异步事件的差异,并提供了解决方案。
99 0
Node内置模块 【Event事件模块】
Node内置模块 【Event事件模块】
220 0
【Node.JS】事件的绑定与触发
【Node.JS】事件的绑定与触发
144 0
【Node.JS】事件的绑定与触发
Node.js系列四 - 深入事件循环
事件循环是什么?事实上我把事件循环理解成我们编写的JavaScript和浏览器或者Node之间的一个桥梁。 浏览器的事件循环是一个我们编写的JavaScript代码和浏览器API调用(setTimeout/AJAX/监听事件等)的一个桥梁, 桥梁之间他们通过回调函数进行沟通。 Node的事件循环是一个我们编写的JavaScript代码和系统调用(file system、network等)之间的一个桥梁, 桥梁之间他们通过回调函数进行沟通的.
147 1
Node.js系列四 - 深入事件循环

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问