zoukankan      html  css  js  c++  java
  • node.js学习笔记6

    事件驱动events

    events是Node.js中最最重要的模块,因为Node.js本身框架就是事件式的,而events提供了唯一的接口。

    事件发射器events.EventEmitter

    events.EventEmitter的核心就是事件发射与事件监听器功能的封装。EventEmitter的每个事件由一个事件名和若干个参数组成,事件名就是一个字符串,通常表达一定的语义。

    对于每个事件,events.EventEmitter支持若干个事件监听器。当事件发射时,注册到这个事件的事件监听器被依次调用,事件参数作为回调函数参数传递。

    EventEmitter.on(event, listener)为指定事件注册一个监听器,接受一个字符串event,和一个回调函数listener .

    EventEmitter.emit( event , [arg1],[arg2], [arg3]..)发射event事件,传递突感可选参数到事件监听器的参数表。

    EventEmitter.once(event, listener)为指定事件注册一个单次监听器,即监听器最多只会触发一次,触发后立即解除该监听器。

    EventEmitter.removeListener(event,listener) 移除指定事件的某个监听器,listener必须是该事件已经注册过的监听器。

    EventEmitter.removeAllListener([event])移除所有事件的监听器,如果指定event,则移除指定事件的所有监听器。

    都会返回emitter,保证链式操作。

    error事件

    EventEmitter定义了一个特殊的事件error,它包含了"错误"的语义,EventEmitter规定如果没有响应的监听器,Node.js会把它当做异常,退出程序并打印调用栈。

    一般要为发射error事件的对象设置监听器,避免遇到错误后整个程序崩溃。

    继承EventEmitter

    大多数时候我们不会直接使用EventEmitter,而是在对象中继承它。包括fs,net,http在内的,只要是支持事件响应的核心模块都是EventEmitter的子类。

    这样做的原因: 一:具有某个实体功能的对象实现事件符合语义,事件的监听和发射应该是一个对象的方法。

    二: JavaScript的对象机制是基于原型,支持部分多重继承,继承EventEmitter不会打乱对象原有的继承关系。

  • 相关阅读:
    你真的会玩SQL吗?让人晕头转向的三值逻辑
    SQL Server 索引维护:系统常见的索引问题
    MySQL Proxy 实现 MySQL 读写分离提高并发负载
    php 处理上百万条的数据库如何提高处理查询速度
    sql事务(Transaction)用法介绍及回滚实例
    数据库update的异常一例
    使用Java正则表达式提取字符串中的数字一例
    JodaTime library not available
    java web中日期Date类型在页面中格式化显示的三种方式
    深入剖析js命名空间函数namespace
  • 原文地址:https://www.cnblogs.com/shixiaomiao/p/4965050.html
Copyright © 2011-2022 走看看