分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

NodeJS基础入门-Event

发布时间:2023-09-06 02:25责任编辑:郭大石关键词:Node

大多数Node.js核心API都采用惯用的异步事件驱动架构,其中某些类型的对象(触发器)会周期性地触发命名事件来调用函数对象(监听器)。
例如,net.Server对象会在每次有新连接时触发事件;fs.ReadStream会在文件被打开时触发事件;流对象会在数据可读时触发事件。
所有能触发事件的对象都是EventEmitter类的实例。eventEmitterr.on()函数,允许将一个或多个函数绑定到会被对象触发的命名事件上。事件名称通常是驼峰式的字符串,但也可以使用任何有效的JavaScript属性名。
当EventEmitter对象触发一个事件时,所有绑定在该事件上的函数都被同步地调用。监听器的返回值会被丢弃。
例子,一个绑定了一个监听器的EventEmitterr实例。eventEmitter.on()方法用于注册监听器,eventEmitter.emit()方法用于触发事件。

const EventEmitter = require(‘events‘);class CustomEvent extends EventEmitter { }const ce = new CustomEvent();ce.on(‘test‘, ()=>{ ?console.log(‘This is a test!‘)});setInterval(() => { ?ce.emit(‘test‘)},500);

不停的触发这个事件:

This is a test!
This is a test!
This is a test!
This is a test!
This is a test!
This is a test!
This is a test!
This is a test!
^C

Error错误信息打印

const EventEmitter = require(‘events‘);class CustomEvent extends EventEmitter { }const ce = new CustomEvent();ce.on(‘error‘, err =>{ ?console.log(err)});ce.emit(‘error‘,new Error(‘oops!‘));

Error: oops!
at Object.

监听并触发结果,只调用一次

const EventEmitter = require(‘events‘);class CustomEvent extends EventEmitter { }// 只调用一次const ce = new CustomEvent();ce.once(‘test‘, () =>{ ?console.log(‘test event‘);});setInterval(() => { ???ce.emit(‘test‘) ?}, 500);

test event

移除事件:

class CustomEvent extends EventEmitter {}function fn1() { ?console.log(‘fn1‘);}function fn2() { ?console.log(‘fn2‘)}const ce = new CustomEvent();ce.on(‘test‘, fn1); ???//可以绑定多个方法ce.on(‘test‘, fn2);setInterval(() => { ?ce.emit(‘test‘); ?},500);setTimeout(() => { ?// ?ce.removeListener(‘test‘,fn2); ?//移除fn2 ?ce.removeAllListeners(‘test‘); ???//移除所有事件}, 2000);

fn1
fn2
fn1
fn2
fn1
fn2
^C

NodeJS基础入门-Event

原文地址:https://www.cnblogs.com/carious/p/10095555.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved