简单了解一下:Node全局对象和事件监听和触发

news2024/11/20 13:16:47

Node的全局对象,就是整个应用都能引用的对象。Node本身内置了多个全局变量、全局对象和全局函数。

在这里插入图片描述

全局变量有两个:__filename和__dirname,

__filename:表示当前正在执行的脚本文件名;

__dirname:当前脚本所在的目录;

全局对象

常见的全局对象,有console,process和exports。

console:console对象用于提供控制台标准输出;

process:对象用于描述当前进程的状态;这个对象只存在于NodeJS中,它有这样几个属性:
在这里插入图片描述
常用的方法如下:

在这里插入图片描述

exports:exports对象是Nodejs模块系统公开的接口。

全局函数

NodeJS提供了6个全局函数:
在这里插入图片描述
前面的4个函数,使我们常用的定时器函数。setImmediate(callback[,…args])和clearImmediate(immediate)两个函数,是在I/O事件回调之后立即执行的。

事件触发和监听

NodeJS是由事件驱动的,每一个任务都可以看做是一个事件来处理,事件监听和触发,整体架构如下图所示:

在这里插入图片描述
NodeJS的事件驱动是通过events模块来完成,events模块提供了EventEmitter类,用来处理事件,例如:

EventEmitter = require('events')
eventEmitter = new EventEmitter()

EventEmitter类有这些属性:
在这里插入图片描述
在这里插入图片描述

事件监听和触发

事件的监听,通过调用on方法;事件触发,则是通过调用emit方法,代码如下:

const event = require("events");
const commit = new event.EventEmitter()

commit.on("cccc", () => {
    console.log("执行了指定事件")
});

commit.emit('cccc')

在这里插入图片描述

需要注意的是,在on方法中定义的事件名称,需要触发哪个事件,就在emit方法中传入对应的事件名称。

如果监听的事件,不需要了,就可以直接删除掉,用到以下这两个方法:

  1. removeListener(eventName,listener):删除指定名称的监听事件;
  2. removeListener(eventName,listener):删除指定名称的监听事件;

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

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

相关文章

【前端学习】—Promise基本知识(十六)

【前端学习】—Promise基本知识(十六) 一、class和function的区别 相同点:都可以用作构造函数不同点:class不可以使用call apply bind的方式来改变它的执行上下文 二、Promise 定义:Promise是异步编程的一种解决方案…

【OpenCV实现图片以及视频的读取、显示、保存以及绘图函数】

文章目录 图片视频从文件读取视频保存一个视频绘图函数 图片 OpenCV(Open Source Computer Vision Library)是一个广泛应用于计算机视觉和图像处理领域的开源库。它提供了丰富的图像处理工具和算法,使得开发者能够轻松实现各种图像处理任务。…

办鹿uniapp小程序(一)

一、项目初始化 1. appid 》 公司给你 wxc82730a0fc15e28a 2. 开发者身份 》 公司给你添加 小程序官网:小程序 管理》成员管理》项目成员 1、 uniapp ui组件 (uView) 如果采用npm安装方式在 小程序端不生效 1.1 采用插件的形式安装&#xf…

pycharm操作git、前后端项目上传到gitee

pycharm操作git 之前用命令做的所有操作,使用pychrm点点就可以完成 克隆代码 上方工具栏Git ⇢ \dashrightarrow ⇢ Clone ⇢ \dashrightarrow ⇢ 填写地址(http、ssh) 提交到暂存区,提交到版本库,推送到远程 直接…

Nmap端口服务 之 CentOS7 关于启动Apache(httpd)服务、telnet服务、smtp服务、ftp服务、sftp服务

Nmap端口服务 之 CentOS7 关于启动Apache(httpd)服务、telnet服务、smtp服务、ftp服务、sftp服务 一. CentOS7 安装配置SFTP服务器详解一、SFTP简介二、关闭防火墙三、安装SSH服务在CentOS7中,sftp只是ssh的一部分,所以采用yum来安装ssh服务即可1. 查看是否已经安装了ssh2.…

promise返回值多层嵌套

实际上打印的是promise的res不是api接口返回值 因为用apifox测试开发服务器的代理接口,和不加代理测试返回值相同: http://localhost:3030是vue开发代理。 "D:\code\jeecg\vue\job-app-master\manifest.json" "proxy" : {"/ap…

嵌入式实习难找怎么办?

今日话题,嵌入式实习难找怎么办?个人建议如果找不到实习机会,可以回归学习嵌入式所需的知识,积累项目经验或者回顾之前参与过的项目,将它们整理复盘。如果还有时间,可以再尝试找实习,如果找不到…

【CANoe】Canoe的 I/O功能-以VN1640A为例

文章目录 一、配置CH5 IO通道二、Trace窗口勾选系统变量三、实例1、数字量输入2、模拟量输入设置电压值的读取周期为100ms在Trace窗口中显示当前电压 3、控制电源是否输出电压到外部电路3.1CAPL脚本编写3.2实操3.3补充:数字输出功能DOUT(Output OD)的使用 四、CANoe…

【算法练习Day23】 复原 IP 地址子集子集 II

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 复原 IP 地址子集子集 II总…

Unity之ShaderGraph如何模拟水波实现顶点波动

前言 今天我们实现类似水波纹的顶点波动效果 如下所示: 主要节点 Tilling And Offset:分别通过输入Tiling和Offset平铺和偏移输入UV的值。这通常用于细节贴图和随时间滚动的纹理。 Gradient Noise:根据输入UV生成梯度或Perlin噪声。生成…

骰子涂色(Cube painting, UVa 253)rust解法

输入两个骰子,判断二者是否等价。每个骰子用6个字母表示,如图4-7所示。 例如rbgggr和rggbgr分别表示如图4-8所示的两个骰子。二者是等价的,因为图4-8(a)所示的骰子沿着竖直轴旋转90之后就可以得到图4-8(b&a…

民宿管理系统应该怎么选择?民宿系统有哪些作用?

开民宿的朋友都知道,虽然民宿少则5-6间房,多则100-200间房,体量看起来不大,但是管理起来却需要费很多精力。房态最主要的有5种:在住、预定、待打扫、待入住、空房,假如是5间房,那就是25种房态&a…

Unity3D 拖拽赋值组件与通过Find赋值组件的优点与缺点详解

Unity3D是一款流行的游戏开发引擎,提供了丰富的功能和工具,使开发人员能够轻松创建高质量的游戏。在Unity3D中,我们经常需要通过拖拽赋值组件或通过Find赋值组件来实现不同对象之间的交互。本文将详细介绍这两种方法的优点和缺点,…

Systemverilog断言介绍(一)

3 Introduction to systemverilog assertions 为了利用形式验证(FV)的力量来证明设计的正确性,首先必须有一种表达您的设计是否正确的方式。最流行的方法是通过property来实现,使用SystemVerilog Assertions(SVA&#…

Halcon 3D相关案例分享

文章目录 一、预处理1、平滑滤波算子说明平滑效果图 二、检测1、外观缺陷检测算子说明缺陷检测效果图 2、点云边界框算子说明边界框效果图 3、平面度检测算子说明平面度效果图 三、量测1、高度测量算子说明测量效果图 2、体积测量算子说明测量效果图 四、配准1、根据模型配准算…

【算法|动态规划No.23】leetcode376. 摆动序列

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

doris operator部署Doris集群教程

doris operator部署Doris集群教程 前言部署流程 前言 kubernetes Operator是遵循kubernetes API和控制器模式,它主要用来封装运维业务逻辑的软件。它利用kubernetes的自定义资源定义(CRD)扩展API,并通过控制器模式监听资源对象&a…

CVPR 2018 基于累积注意力的视觉定位 Visual Grounding via Accumulated Attention 详解

Abstract: VG面临的主要挑战有3个:1 )查询的主要焦点是什么;2 )如何理解图像;3 )如何定位物体。 在本文中,我们将这些挑战形式化为三个注意力问题,并提出了一个累积注意力( A-ATT )机制来共同推理其中的挑战…

找不到msvcr120.dll无法执行代码?教你6种方法快速解决问题

在现代的计算机编程中,我们经常会遇到各种各样的问题。其中,“由于找不到msvcr120.dll无法执行代码”的问题是许多开发者都会遇到的一个常见难题。这个问题通常发生在我们试图运行使用Visual Studio 2013编译的程序时,因为msvcr120.dll是Micr…

【QT】QTreeWidget

新建项目 第一步:设置头标签 第二步:设置item 第三步:创建子item,挂载在顶层item下 完整代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::W…