zoukankan      html  css  js  c++  java
  • Node.js_1

    1.添加EventEmitter模块

    var EventEmitter = require('events').EventEmitter

    2.实例一个EventEmitter对象

    var life = new EventEmitter()

    3.可通过.setMaxListeners()来修改最大监听数,默认10个

    life.setMaxListeners(11)

    4.事件监听有两种方法,两种方式

    function water(who){
        console.log('给 ' + who +' 倒水')
    }
    
    // addEventListener
    life.on('求安慰',water)
    
    life.on('求安慰',function(who){
        console.log('给 ' + who +' 揉肩')
    })

    5.移除一个监听事件,需要在 life.emit('求安慰','东晖')  之前才有用,并且只能移除具名函数

    life.removeListener('求安慰',water)

    6移除所有‘求安慰’的事件

    life.removeAllListeners('求安慰') 

    7触发事件

    life.emit('求安慰','东晖')
    life.emit('求溺爱','妹子')

    8查看是否被监听(查看时所有事件会再触发一遍,why?)

    var hasConfortListener = life.emit('求安慰','东晖')
    var hasPlayedListener = life.emit('求溺爱','妹子')
    var hasLovedListener = life.emit('求玩坏','ni ')
    
    console.log(life.emit('求安慰','东晖'))
    console.log(life.emit('求溺爱','妹子'))
    console.log(life.emit('求玩坏','ni '))

    9查看监听个数,需要具体的名字,有两种方法

    console.log(life.listeners('求安慰').length)  //方法一
    console.log(EventEmitter.listenerCount(life,'求溺爱'))  //方法二

    整个Demo:

    // 添加EventEmitter模块
    var EventEmitter = require('events').EventEmitter
    
    //实例一个EventEmitter对象
    var life = new EventEmitter()
    
    //可通过.setMaxListeners()来修改最大监听数,默认10个
    life.setMaxListeners(11)
    
    
    function water(who){
        console.log('给 ' + who +' 倒水')
    }
    
    // addEventListener
    life.on('求安慰',water)
    
    life.on('求安慰',function(who){
        console.log('给 ' + who +' 揉肩')
    })
    
    life.on('求安慰',function(who){
        console.log('给 ' + who +' 洗衣')
    })
    
    
    life.on('求溺爱',function(who){
        console.log('给 ' + who +' 买衣服')
    })
    
    // 移除一个监听事件,需要在 life.emit('求安慰','东晖')  之前才有用,并且只能移除具名函数
    life.removeListener('求安慰',water)
    
    //移除所有‘求安慰’的事件
    life.removeAllListeners('求安慰') 
    
    // 触发事件
    life.emit('求安慰','东晖')
    life.emit('求溺爱','妹子')
    
    /*// 查看是否被监听
    var hasConfortListener = life.emit('求安慰','东晖')
    var hasPlayedListener = life.emit('求溺爱','妹子')
    var hasLovedListener = life.emit('求玩坏','ni ')
    
    console.log(life.emit('求安慰','东晖'))
    console.log(life.emit('求溺爱','妹子'))
    console.log(life.emit('求玩坏','ni '))
    */
    
    // 查看监听个数,需要具体的名字,有两种方法
    console.log(life.listeners('求安慰').length)  //方法一
    console.log(EventEmitter.listenerCount(life,'求溺爱'))  //方法二
  • 相关阅读:
    SVN 初级教程
    572 node包管理工具
    571 node的events模块
    570 node内置模块fs
    569 node内置模块path
    568 node之JavaScript模块化:exports,module.exports,import,对象的引用赋值,require查找规则,export、import关键字,CommonJS的加载过程,ES Module加载过程
    567 node概述:Node程序传递参数,常见的全局对象,特殊的全局对象
    566 手写37个 原生JavaScript 系列汇总(含promise A+)
    565 手写promise源码
    564 函数的防抖和节流
  • 原文地址:https://www.cnblogs.com/Hale-Proh/p/6941101.html
Copyright © 2011-2022 走看看