可以做产品推广的网站长沙房地产市场

bicheng/2026/1/20 8:57:19/文章来源:
可以做产品推广的网站,长沙房地产市场,怎么取消网站备案,做网站卖东西赚钱吗Node.js是由事件驱动的#xff0c;每个任务都可以当作一个事件来处理#xff0c;本贴将对Node.js中的events模块及其中处理事件的类EventEmitter的使用进行详细讲解。 1、EventEmitter对象 在JavaScript中#xff0c;通过事件可以处理许多用户的交互#xff0c;比如鼠标…Node.js是由事件驱动的每个任务都可以当作一个事件来处理本贴将对Node.js中的events模块及其中处理事件的类EventEmitter的使用进行详细讲解。 1、EventEmitter对象 在JavaScript中通过事件可以处理许多用户的交互比如鼠标的单击、键盘按键的按下、对鼠标移动的反应等。在Node.js中也提供了类似的事件驱动主要是通过events模块实现的该模块中提供了EventEmitter类用于处理事件。要使用EventEmitter类处理事件首先需要对其进行初始化代码如下 EventEmitter require(events) eventEmitter new EventEmitter()在Node.js中可以添加监听事件的对象都是继承自EventEmitter对象后者提供了用于处理Node.js事件的方法常用方法及说明如下表所示 说明 EventEmitter对象的addListener()方法和on()方法都用来添加监听事件它们的使用是等效的实际上on方法在内部实现时调用了addListener()方法。Node.js中推荐使用on()方法添加监听事件。 使用EventEmitter对象创建简单事件在WebStorm中创建一个.js文件其中创建一个EventEmitter对象并使用其on方法添加监听事件在监听事件中输出一个日志信息然后使用emit()方法触发该监听事件。代码如下 //引入events模块 var events require(events); //生成EventEmitter对象 var custom new events.EventEmitter(); //添加监听事件tick custom.on(tick, function (code) {console.log(执行指定事件); }); //主动触发监听事件tick custom.emit(tick);运行程序效果如下图所示 上面的代码中使用EventEmitter对象添加监听事件和触发监听事件的代码都放在了一个文件中但实际应用时通常会把添加监听事件的模块和触发监听事件的模块分开如下图所示就是一种常用的实现Node.js监听事件的文件构成方式。其中app.js文件中添加相关监听事件rint.js文件中触发相关监听事件。 演示项目中监听事件的添加与触发程序开发步骤如下 (1)在WebStorm中创建一个rint.js文件该文件中使用EventEmitter对象的emit()方法每隔1秒触发一次tick事件代码如下 //定义变量用来记录执行次数 num0 //引入events模块 var events require(events); //生成 EventEmitter 对象 exports.timer new events.EventEmitter(); //触发监听事件tick setInterval(function () {num1exports.timer.emit(tick,num); }, 1000);(2)创建一个app.js文件为rint模块添加具体的tick事件该事件中输出一个日志信息代码如下 //引入rint模块 var rint require(./rint.js); //添加监听事件 rint.timer.on(tick, function (code) {console.log(执行第 ${code} 次监听事件); });运行app.js文件效果如下图所示 2、添加和触发监听事件 前面我们演示了如何在Node.js中添加监听事件和触发监听事件主要用到的是EventEmitter对象的on方法和emit方法下面对这两个方法及其使用进行详细讲解。 2.1、 添加监听事件 通过上面的学习我们已经知道在Node.js中添加监听事件使用的是EventEmitter对象的on方法该方法主要用来将回调函数添加到名为eventName的事件监听器数组的末尾其语法格式如下 on(eventName,listener)eventName一个字符串表示事件名称。listener回调函数。 在使用on方法向事件监听器数组中添加函数时不会检查其是否已被添加如果多次调用并传入相同的eventName与listener会导致listener被重复添加多次。例如下面代码会为tick事件添加3次同样的输出日志函数 //引入events模块 var events require(events); //生成EventEmitter对象 var custom new events.EventEmitter(); //添加监听事件tick custom.on(tick, function () {console.log(第1次添加); }); custom.on(tick, function () {console.log(第2次添加); }); custom.on(tick, function () {console.log(第3次添加); }); //主动触发监听事件tick custom.emit(tick);执行上面代码时默认运行结果如下 第1次添加 第2次添加 第3次添加从上面的运行结果可以看出在默认情况下事件监听器会按照添加的顺序依次调用但如果想要改变添加顺序该怎么办呢EventEmitter对象提供了一个prependListener方法该方法可以将事件回调函数添加到监听器数组的开头其语法如下 prependListener(eventName, listener)eventName一个字符串表示事件名称。listener回调函数。 例如将上面的代码修改如下 //引入events模块 var events require(events); //生成EventEmitter对象 var custom new events.EventEmitter(); //添加监听事件tick custom.on(tick, function () {console.log(第1次添加); }); //将回调函数添加到事件监听器数组的开头 custom.prependListener(tick, function () {console.log(第2次添加); }); custom.on(tick, function () {console.log(第3次添加); }); //主动触发监听事件tick custom.emit(tick);运行结果会变成下面这样 第2次添加 第1次添加 第3次添加另外需要注意的是在上面的示例中我们可以为同一个事件添加多个回调函数但如果添加的回调函数超过10个则会出现如下图所示的警告提示 通过观察上图可以看到如果为同一个事件添加的回调函数超过了10个程序可以正常运行但会在运行完之后出现警告提示如何避免该警告呢EventEmitter对象提供了一个setMaxListeners方法该方法用来设置可以监听的最大回调函数数量其语法格式如下 setMaxListeners(limit)limit一个数字用来表示可以监听的最大回调函数数量。 例如将监听器可以监听的最大回调函数数量设置为15个代码如下 custom.setMaxListeners(15)2.2、添加单次监听事件 使用前面介绍的on方法添加事件时事件一旦添加就会一直存在但如果遇到只想执行一次监听事件的情况使用on方法就无能为力了这时可以使用EventEmitter对象的once方法该方法用来将单次监听器listener添加到名为eventName的事件当eventName事件下次触发时监听器会先被移除然后再调用。once方法的语法格式如下 once(eventName,listener)eventName一个字符串表示事件名称。listener回调函数。 使用once方法添加单次监听事件在WebStorm中创建一个index.js文件其中使用EventEmitter对象的once方法为监听事件绑定一个回调函数然后使用emit方法触发该监听事件在触发时设置每秒触发一次代码如下 //引入events模块 var events require(events); //生成EventEmitter对象 var custom new events.EventEmitter(); function onUncaughtException(error) {//输出异常内容console.log(发生异常请多加小心 !); } //添加监听事件event custom.once(event, onUncaughtException); //主动触发监听事件event setInterval(function () {custom.emit(event); }, 1000);运行程序效果如下图所示 说明 上图中使用once方法添加监听事件后每隔一秒触发一次该事件但只执行了一次。但是如果将代码中第10行的once修改为on则运行结果会变成每隔一秒输出一次日志。 2.3、触发监听事件 当对指定对象添加监听事件后需要触发添加的监听事件这时需要使用EventEmitter对象的emit方法其语法格式如下 emit(eventName[, ...args])eventName一个字符串表示要触发的事件名称。args回调函数中需要的参数。返回值布尔值表示是否成功触发事件。 使用emit方法触发事件在WebStorm中创建一个index.js文件其中使用EventEmitter对象的on方法为监听事件绑定一个回调函数然后使用emit方法触发该监听事件代码如下 //引入events模块 var events require(events); //生成EventEmitter对象 var custom new events.EventEmitter(); //添加监听事件event custom.on(event, function listener() {console.log(触发监听事件); }); //主动触发监听事件event custom.emit(event);运行程序效果如下 触发监听事件上面为事件添加的回调函数没有参数但在实际开发中可能需要定义带参数的回调函数这时使用emit方法触发监听事件时传入相应个数的参数即可。 触发带参数的监听事件在WebStorm中创建一个index.js文件其中使用EventEmitter对象的on方法为监听事件绑定两个回调函数第一个回调函数有一个参数第二个回调函数的参数为不定长参数然后使用emit方法触发该监听事件代码如下 //引入events模块 var events require(events); //生成EventEmitter对象 var custom new events.EventEmitter(); //添加监听事件event custom.on(event, function listener1(arg) {console.log(第 1 个监听器中的事件有参数 ${arg}); }); //添加监听事件event custom.on(event, function listener1(...args) {parameters args.join(, ); //连接参数console.log(第 2 个监听器中的事件有参数 ${parameters}); }); //主动触发监听事件event custom.emit(event, 1, 明日,年龄30,爱好编程);运行程序效果如下图所示 从上图可以看出由于在第一个event事件中定义的回调函数中只有一个参数arg因此在触发时即使传入了多个值其也只输入第一个值在第二个event事件定义的回调函数中由于使用了“…args”进行定义这表示它是一个不定长参数因此在触发时会根据传入参数的个数输出相应的内容。 3、删除监听事件 前面已经学习了如何添加及触发监听事件如果添加的监听事件不需要了可以将它删除。删除监听事件的方法如下 removeListener(eventName,listener)删除指定名称的监听事件。removeAllListeners([eventName])删除全部监听事件。 下面通过一个实例来演示如何使用Node.js中删除监听事件的方法。将要添加到监听事件的回调函数单独定义并添加到event监听事件并触发在触发监听事件后使用removeListener方法删除该监听事件并通过输出删除前后的监听事件名称进行对比。代码如下 //引入events模块 var events require(events); //生成EventEmitter对象 var custom new events.EventEmitter(); function listener() {console.log(触发监听事件); } //添加监听事件event custom.on(event, listener); //主动触发监听事件event custom.emit(event); console.log(custom.eventNames()); //输出删除前的监听事件名称 custom.removeListener(event,listener) ; //删除event事件 console.log(custom.eventNames()); //输出删除后的监听事件名称说明 在EventEmitter中还提供了off(eventName, listener)方法该方法实际上相当于removeListener方法的别名也可以删除指定名称的监听事件其使用方法与removeListener完全一样。运行程序效果如下图所示 在使用removeListener方法删除监听事件时如果同一个事件监听器被多次添加到指定eventName的监听器数组中则必须多次调用removeListener方法才能删除所有事件。例如 //引入events模块 var events require(events); //生成EventEmitter对象 var custom new events.EventEmitter(); function listener() {console.log(触发监听事件); } //添加监听事件event custom.on(event, listener); /*多次添加同一个事件*/ custom.on(event, listener); custom.on(event, listener); custom.on(event, listener); //主动触发监听事件event custom.emit(event); console.log(custom.eventNames()); //输出删除前的监听事件名称 custom.removeListener(event,listener); //删除event事件 console.log(custom.eventNames()); //输出删除后的监听事件名称上面代码中为event事件添加了4次listener回调函数但只使用removeListener删除了一次event事件运行结果如下图所示 观察上图可以看出删除前后event事件都存在说明使用removeListener并没有完全删除多次添加的event事件。这时如果想要完全删除event事件可以使用removeListener方法删除4次也可以直接使用removeAllListeners删除所有的监听事件代码如下 custom.removeAllListeners(event); //删除所有event事件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88559.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

o2o好网站进入网站前如何做环境检测

原因1:数字锁没有打开 没有打开NumLock(数字小键盘上面有一个【Num】按键),需要按键开启。 注意要检查NumLock灯是否亮起。 或者改成用字母键上面的数字键输入就好了。 原因2:root密码设置错误(这个是比较常…

wordpress页面回收站位置动易医院网站管理系统

sqli-labs是一款学习SQL 注入的开源平台,共有75种不同类型的注入,在本书 的同步网站下载完压缩包后并解压,复制源码然后将其粘贴到网站的目录中,进入 MySQL 管理中的phpMyAdmin, 打开http://127.0.0.1/phpMyAdmin/, 在数据库…

在putty做网站要拷贝什么湘潭市建设网站

1、文件服务器:是一种网络服务器,他能够把共享文件夹或者是网络驱动器映射到本地计算机上面,这样企业里的用户都可以很方便的访问和共享文件,文件服务器还能够存储大量的数据,提供备份,安全性也很高&#x…

做的好的网站有哪些安徽网站建

文章目录 前言1. 同步以及命令传播1.1 同步1.2 命令传播 2. 解决从服务器断线重连2.1 解决方案 3. PSYNC命令4. 复制步骤1:设置主服务器的地址和端口步骤2:建立套接字连接 ——其实就是建立TCP连接步骤3:发送PING命令步骤4:身份验证步骤5:发送端口信息步骤6:同步步骤7:命令传播…

起零网站建设邢台柏乡县建设局网站

nginx:一个高性能、轻量级的web服务软件 1、稳定性高(没有apache稳) 2、系统资源消耗低(处理http请求的并发能力很高,单台物理服务器可以处理3万到5万个并发请求) 稳定:一般在企业中&#xff…

车票网站模板网站设计大概收费范围

一、源码特点 java Web运输公司管理系统是一套完善的java web信息管理系统 serlvetdaobean mvc 模式开发 ,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主 要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5…

网站建设教程 湖南岚鸿潍坊网站托管

本文由 Jonathan 译自 https://medium.muz.li/how-to-succeed-in-wireframe-design-2ab3cd5c4bc9我们常轻忽身边习以为常的事物,觉得没有必要为一些看似简单又可有可无的东西浪费时间——例如线框图。虽然没必要凡事都寻根问底,但当面对复杂问题时&#…

来年做哪个网站能致富网络基础知识

题目描述 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元素…

江阴市住房与建设局网站东莞网站建设咨询公

欢迎来到由 The Sandbox 发布的《VoxWeekly》。我们会在每周发布,对上一周 The Sandbox 生态系统所发生的事情进行总结。 如果你喜欢我们内容,欢迎与朋友和家人分享。请订阅我们的 Medium 、关注我们的 Twitter,并加入 Discord 社区&#xf…

北京网站建设文章建设网站后申请什么类型专利

AAC(Advanced Audio Coding)是一种高级音频编码算法,用于对音频进行高效的压缩,并提供更好的音质。AAC算法是MPEG-2和MPEG-4标准中定义的音频编码格式之一。 以下是AAC算法的主要步骤: 分帧:将输入音频信号…

2017优秀网站设计设计一个电商网站

在深度学习中,nn.Identity() 是 PyTorch 中的一个层(layer)。它实际上是一个恒等映射,不对输入进行任何变换或操作,只是简单地将输入返回作为输出。 通常在神经网络中,各种层(比如全连接层、卷…

移动端企业网站模板毕业设计网站模板下载

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 【Django专栏】 Django——django简介、django安装、创建项目、快速上手 Django——templates模板、静态文件、django模板语法、请求和响应 Django——连接mysql数据库 Django——连接mysql数据库 连接MySQL数据库…

南通专业家纺网站建设医疗卫生网站前置审批

转载地址: http://www.3q2008.com/soft/search.asp?keyword295 智能考试 建3个题库,分别放入3种难度题目若干,判断题(简单题库),2选1(每题1分),选择题(一般题库)4选1(每题2分)和多选(难题库)(每题4分).设定为英语考试就行了. 入题 生成试卷 登陆界面有两种用户可登陆,学生和…

腾讯专门做数据标注的网站是全国网站建设企业

图文主要参考小林Coding的图解redis数据结构 redis为什么快 除了它是内存数据库,使得所有的操作都在内存上进⾏之外,还有⼀个重要因素,它实现的数据结构,使 得我们对数据进⾏增删查改操作时,Redis 能⾼效的处理。 数…

鞋业有限公司网站设计市场营销案例100例

Ubuntu上搭建TFTP服务 TFTP服务简介搭建TFTP服务安装TFTP服务修改配置文件 重启服务 TFTP服务简介 TFTP是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适用于开销不大、不复杂的应用场合。TFTP协议专门为小文件传输而设计,只…

提交网站给百度长沙市建设厅网站

使用vite初始化项目 确保你的开发环境中已经安装了Node.js,而且有npm,yarn等包管理工具,然后可以按照vite官方提供的方式初始化项目: yarn create vite跟随提示选择即可: 或者可以直接克隆下面的仓库 https://gith…

网站建设文件男的怎么做直播网站

一、问题背景 最近遇到了一个情景: 子组件干完事情,需要对父组件的变量进行更新,因为父组件将该变量传递给子组件,但是不会双向绑定,这时候我们就需要传值或者触发回调去解决这个问题 我们将分为两个部分 1.父组件传…

制作小程序的平台汕头seo管理

代码混淆的目的 代码混淆的目的是防止竞争对手通过反编译来阅读项目代码。 Android中通过ProGuard来做代码混淆(当然也还有其他的产品可以做代码混淆)。 bug日志反混淆 资料:错误log、mapping.txt 异常log: mapping.txt&#xff…

陵水网站建设咨询虚拟主机可以做几个网站

1. 简介:manimgl是使用Python语言开发数学动画的一个库。用来创建数学动画。版本有很多,今天介绍manimgl,他要依赖OpenGL库。 2. 打开Shell命令行,连接上互联网。先安装opengl。 Shell>>> sudo apt install l…

石家庄网站建设模板服务厦门网站建设u

文章目录 前言一、Mesh组成二、使用步骤三、效果四、总结 前言 Mesh(网格)是一种常用的3D图形表示方法,它由顶点,法线,UV 坐标,和三角形等组成。您可以使用 Mesh 类的方法来创建或修改网格,也可…