events(事件): 基础1
2024-08-31 21:51:39
1 所有能触发事件的对象都是 EventEmitter
类的实例。 这些对象开放了一个 eventEmitter.on()
函数,允许将一个或多个函数绑定到会被对象触发的命名事件上。 事件名称通常是驼峰式的字符串,但也可以使用任何有效的 JavaScript 属性名。
当 EventEmitter
对象触发一个事件时,所有绑定在该事件上的函数都被同步地调用。
注释:绑定的多个函数会以队列的形式被调用,由于是同步的所以
const EventEmitter = require('events'); let emitter = new EventEmitter(); emitter.on('myEvent', () => {
for(let i = 0; i < 5000; i ++) {
console.log('ev1', i)
}
}); emitter.on('myEvent', () => {
console.log('hi 2');
});
emitter.emit('myEvent');
/* 输出结果
ev1 0
ev1 1
...
ev1 4999
hi 2
asdaaa */
const EventEmitter = require('events'); let emitter = new EventEmitter(); emitter.on('myEvent', () => {
console.log('hi');
emitter.emit('myEvent');
}); emitter.emit('myEvent');
/*
会产生死循环
Maximum call stack size exceeded
回调栈溢出
调用堆栈的溢出(大小超过最大)
*/
const EventEmitter = require('events'); let emitter = new EventEmitter(); emitter.on('myEvent', function sth () {
emitter.on('myEvent', sth);
console.log('hi');
}); emitter.emit('myEvent');
/*
监听器绑定会以2n的速度绑定,没几下就炸了 */
最新文章
- 读书笔记--SQL必知必会21--使用游标
- Centos下ACL(访问控制列表)介绍(转)
- [Tomcat 源码分析系列] (一) : Tomcat 启动脚本-startup.bat
- Halcon相机标定
- Weblogic 启动报错:java.lang.NoClassDefFoundError
- sizeof(class)
- 使用Adreno Profiler分析android游戏
- 【解惑】深入jar包:从jar包中读取资源文件
- 程序模拟浏览器请求及会话保持-python实现
- iphone:自定义UIAlertView
- Android 通过wifi调试程序【转】
- 运维自动化之SALTSTACK简单入门
- Python之matplotlib学习(一)
- oracle 常用select sql语句
- js 调用后台,后台调用js
- OC基础成员变量、属性变量、实例方法与类方法
- MySQL中的运算符和时间运算
- flex布局中flex-shrink的计算规则
- Python值hashlib详解
- JavaWeb项目通过调用cmd实现备份数据库的功能
热门文章
- SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能
- swift 利用 Reflect(字典转模型)
- 【z05】聪明的质检员
- 英特尔投资:7200万美元投资12家创新公司,包括3家中国公司(www.intelcapital.com)
- mybatis逆向工程随笔
- 【C++竞赛 A】xxx的项链
- session了解及超时处理
- [Compose] 13. Lift into a Pointed Functor with of
- CRT(C Runtime Library)—— C/C++运行时库
- Android组件——使用DrawerLayout仿网易新闻v4.4侧滑菜单