zoukankan      html  css  js  c++  java
  • Node学习5-events模块

    异步事件驱动架构

    //这个变量名是 EventEmitter
     //注意是eventsssssssssss,不是event
     const EventEmitter = require('events');
    
     //ES6
     //继承EventEmitter
     class CustomEvent extends EventEmitter{
    
     };
    
     const ce = new CustomEvent();
    
    
     //绑定监听函数
     //函数名是test,内容是箭头函数
     ce.on('test',()=>{
         console.log('Hello World');
     });
    
     //定时器
     //定时触发事件
     setInterval(()=>{
         ce.emit('test');
     },1000);

    移除相关的监听器

    const ev = require('events');
    
    //箭头函数是匿名函数
    //要创建正式的函数必须这样
    function fn1(){
        console.log('fn1');
    }
    
    function fn2(){
        console.log('fn2');
    }
    
    //看来变量名取ev也是可以的
    class CustomEvent extends ev{};
    
    const ce = new CustomEvent();
    
    //一个test事件,可以绑定多个函数
    ce.on('test',fn1);
    ce.on('test',fn2);
    
    //一般在函数作为参数的时候,才使用匿名函数
    setInterval(()=>{
        ce.emit('test');
    },500);
    
    
    //设定在多少秒时候移除函数
    setTimeout(()=>{
        ce.removeListener('test',fn2);
    },1500);

    处理错误函数

    const ev = require('events');
    
    class CustomEvent extends ev{};
    
    const ce = new CustomEvent();
    
    
    //绑定error事件
    //我觉得这种匿名函数就很强,参数类型都不需要
    ce.on('error',err=>{
        console.log(err);
    });
    
    setTimeout(()=>{
        ce.emit('error',new Error('oop!'));
    },1000);

    如果监听函数只使用一次,可以把on改成once

  • 相关阅读:
    质量属性论文
    四月份-读书笔记 构建之法
    基于二元模型的拼音输入法
    融云单聊
    Gogs私有git仓库 + Drone构建CI/CD
    仿jq ajax封装支付宝小程序request.js
    Electron 和 Angular 构建桌面应用程序
    css多行溢出省略号
    package-lock和package.json
    控制窗体的小程序
  • 原文地址:https://www.cnblogs.com/weizhibin1996/p/9289155.html
Copyright © 2011-2022 走看看