问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么是 nodejs 事件循环

发布网友 发布时间:2022-04-21 14:55

我来回答

1个回答

热心网友 时间:2022-04-22 11:38

Node JS是单线程应用程序,但它通过事件和回调概念,支持并发。 由于Node
JS每一个API是异步的,作为一个单独的线程,它使用异步函数调用,以保持并发性。Node
JS使用观察者模式。Node线程保持一个事件循环,每当任何任务得到完成,它触发这标志着该事件侦听器函数执行相应的事件。

事件驱动编程

Node.js大量使用事件,这也是为何Node.js是相当快相对于其他类似的技术。当Node启动其服务器,它可以简单地启动它的变量,声明的函数,然后简单地等待发生的事件。

在事件驱动的应用中,通常主循环监听事件,然后触发回调函数时被检测到这些事件之一。

尽管事件似乎类似于回调。不同之处在于如下事实,当异步函数返回其结果的回调函数被调用的地方作为对观察者模式的事件处理。
监听事件的功能作为观察员。每当一个事件被触发,它的监听函数就开始执行。Node.js具有多个内置通过事件模块和用于将事件绑定和事件侦听,如下
EventEmitter类可用事件:
// Import events mole
var events = require('events');
// Create an eventEmitter object
var eventEmitter = new events.EventEmitter();

以下为事件处理程序绑定使用事件的语法:
// Bind event and even handler as follows
eventEmitter.on('eventName', eventHandler);

我们可以通过编程触发一个事件,如下所示:
// Fire an event
eventEmitter.emit('eventName');

例子

创建一个名为具有以下代码main.js一个js文件:
// Import events mole
var events = require('events');
// Create an eventEmitter object
var eventEmitter = new events.EventEmitter();

// Create an event handler as follows
var connectHandler = function connected() {
console.log('connection succesful.');

// Fire the data_received event
eventEmitter.emit('data_received');
}

// Bind the connection event with the handler
eventEmitter.on('connection', connectHandler);

// Bind the data_received event with the anonymous function
eventEmitter.on('data_received', function(){
console.log('data received succesfully.');
});

// Fire the connection event
eventEmitter.emit('connection');

console.log("Program Ended.");

现在让我们试着运行上面的程序作为检查的输出:
$ mnode main.js

这将产生以下结果:
connection succesful.
data received succesfully.
Program Ended.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 如何运行nodejs环境 PPT 怎么画多边形中的曲线部分 怎样在ppt原有的柱状统计图上加曲线图 提供一个双曲线的画法,可插入PPT里的。急!!! PPT里面插入的曲线图数值范围为什么不在填入的范围内 ppt怎么画正弦曲线? ppt曲线工具在哪里 ppt怎么画规则的曲线 电脑连接到apple id服务器时出错怎么回事 gb/t 23493是什么标准 gb/t29463.2什么意思 gb/t18380.35是什么意思 GB/T4459.5是什么意思? 执行标准gb/t18356和gbt27260 的区别 GB/T20980是什么的执行标准号?详细的 产品标准号gb/t 29680是什么意思 国家标准的GB/T3798 GB/T3799 GB/T5336的最新版本规定和标准文体是什么,有谁 白酒GB/T19328是什么执行标准 GB/T13793-2008 与 GB/T3092 两个标准的区别 gb/t31751是什么意思 nodejs和js的区别 b站手机怎么投稿?我听说现在可以手机投稿了诶 qq空间怎么不看所有人动态? 怎么样在QQ空间不看全部人的动态,不要只能个别隐藏的 台式电脑的介绍 台式电脑推荐性价比高 2020年台式电脑推荐 总是想买东西怎么办? 台式机推荐 请推荐几个国产的台式电脑,谢谢。 现在台式电脑什么牌子的比较好 主流台式电脑配置推荐 6千到7千的台式电脑推荐一个 苹果手机刚开机怎么设置id 新苹果id怎么设置 连接wifi的海信电视机怎样看直播 海信电视连上wifi后怎么看电视直播节目 海信智能电视连接了wifi怎么看电视 海信55寸液晶用WiFi怎么看直播电视 验证失败连接apple+id服务器时出错