node.js 事件循环
var events = require('events'); var eventEmitter = new events.EventEmitter();
下面的语法是使用一个事件来绑定事件处理函数
eventEmitter.on('eventName', eventHandler);
我们可以通过编码来触发事件
eventEmitter.emit('eventName');
例如: 创建一个名字为main.js的js文件,并填入下面的代码
// Import events module 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.");
现在让我们来运行上面的代码并查看他的输出
$ node main.js
他会输出下面的结果
connection successful. data received successfully. Program Ended.
Tutorials Point is giving self learning content to teach the world in simple and easy way!!!!!
创建一个js文件命名为main.js,填入下面的代码
var fs = require("fs");fs.readFile('input.txt', function (err, data) {if (err){console.log(err.stack);return;}console.log(data.toString()); }); console.log("Program Ended");
readFile是一个异步的函数,用于读取文件,在读取期间如果有错误发生,err对象会包含相应的错误,如果没有错误,data对象会包含读取的文件内容,读取操作完成后readFile传递一个err和data参数给回调函数,下面是最终的输出。
Program Ended Tutorials Point is giving self learning content to teach the world in simple and easy way!!!!!
还有一篇讲事件循环的文章很不错,有时间 大家可以读一下:
https://blog.risingstack.com/node-js-at-scale-understanding-node-js-event-loop/
node.js 事件循环相关推荐
- Linux事件循环阻塞,深入浅析Node.js 事件循环、定时器和process.nextTick()
什么是事件循环 尽管JavaScript是单线程的,但通过尽可能将操作放到系统内核执行,事件循环允许Node.js执行非阻塞I/O操作. 由于现代大多数内核都是多线程的,因此它们可以处理在后台执行的多 ...
- 八七、Node.js事件循环与多进程
nodejs事件循环与多进程 why 事件循环对于深入理解nodejs异步至关重要 fs, net,http,events 事件循环是企业面试中的最高频考题之一 能驾驭nodejs多进程是一名资深前端 ...
- JS事件循环机制:同步与异步任务 之 宏任务 微任务
JS事件循环机制:同步与异步任务 之 宏任务 微任务 阅读目录 javascript事件循环 setTimeout和setInterval中的执行时间 宏任务和微任务 javascript是单线程,一 ...
- 面试率 90% 的JS事件循环Event Loop,看这篇就够了!! !
面试率 90% 的JS事件循环Event Loop,看这篇就够了!! ! 事件循环(Event Loop)大家应该并不陌生,它是前端极其重要的基础知识.在平时的讨论或者面试中也是一个非常高频的话题. ...
- 详解浏览器和Node的事件循环机制及区别
关于事件循环机制(详解) 前言 一.浏览器的事件循环机制 二.Node的事件循环机制 三.两者的区别 前言 JS是单线程的脚本语言,即在同一时间只能做一件事.为了协调时间.用户交互.脚本.UI渲染和网 ...
- 如何构建自定义 Node.js 事件发射器
事件是具有软件或硬件意义的动作. 它们是由于用户活动(例如鼠标单击或击键)或直接来自系统(例如错误或通知)而发出的. JavaScript 语言使我们能够通过在事件处理程序中运行代码来响应事件. 由于 ...
- JS事件循环 Event Loop
前言 刚学前端的时候一直听别人说 JS 是单线程.单线程.单线程的,其实完整的应该是在浏览器环境下 JS 执行引擎是单线程的. 那么什么是线程?为什么JS是单线程的? 1. 进程和线程 进程和线程的主 ...
- js事件循环——看输出顺序
js事件循环: 由于js是单线程的,同一时间只能干一件事情,当期宿主环境为浏览器时,若一个任务耗时过长会导致页面阻塞.因此有了js事件循环机制,它将任务分成同步任务和异步任务,同步任务在主线程不断执行 ...
- JS事件循环中的宏任务和微任务执行顺序
1. 宏任务和微任务事件 其中微任务的优先级高于宏任务,括号内为事件运行环境 宏任务 微任务 I/O事件/onClick点击事件 process.netTick (Node) setTimeout N ...
最新文章
- python三层架构
- 通用httpclient生成方式
- 单纯形 c语言 程序,单纯形法完全c语言程序
- 香帅的北大金融学课笔记16 -- 公司决策
- linux lw3m多行文本使用,linux常用命令以及一些常见问题和解决方法教程.docx
- 东南亚版“QQ 音乐”:JOOX 的音乐推荐重构之路
- Facebook市值首次突破1万亿美元
- SuperMap BIM+GIS技术白皮书
- 浅谈CDN技术的发展历程
- 阿里安全SQL注入检测 前五名队伍分享
- 1分钟恢复损坏的Excel文件
- 按是否运行源代码划分: 静态测试和动态测试
- 什么是DNS泄漏?我为什么要关心?
- Window7开机速度有点慢的解决办法
- c++11线程池的实现原理及回调函数的使用
- 网络基础:(二)路由选择基础与静态路由
- canvas画地图运动轨迹【自己定位】
- Python:for循环语句
- mpvue项目中使用第三方UI组件库
- [附源码]Python计算机毕业设计动物保护资讯推荐网站
热门文章
- hadoop和hdfs命令_Hadoop 1.x和2.x HDFS基本开发人员命令,“ hadoop”命令
- 人工智能在塑造未来移动应用开发中的作用
- 核心金融场景分布式事务
- Outlook 2013中 IMAP配置
- spring : springmvc常用注解标签详解(转)
- Datagard產生gap
- 个推 Spark实践教你绕过开发那些“坑”
- C# Winform添加全局快捷键(老板键)
- “间谍”软件克星Ad-Aware
- xen虚拟化部署遇到的问题(持续更新)