V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
TomVista
V2EX  ›  Node.js

node EventEmitter

  •  
  •   TomVista · May 14, 2020 · 4849 views
    This topic created in 2186 days ago, the information mentioned may be changed or developed.

    想在 event.emmit('eventName') 执行完异步事件之后 触发一个 end 事件,怎么做?

    暴露 event 给 listener 吗?

    const event = new (require('events').EventEmitter)
    event.on('name',(event)=>{
    	// dosomething
        setTimeout(()=>{
            ...
            event.emmit('nameEnd')
        },100)
        
    })
    
    event.on('nameEnd',()=>{
    	console.log(name)
    })
    
    event.emmit('name',event)
    
    1 replies    2020-05-15 12:04:21 +08:00
    JayLin1011
        1
    JayLin1011  
       May 15, 2020   ❤️ 1
    const EventEmitter = require('events');

    const event = new EventEmitter();

    event.on('eventEnd', () => {
    console.log('異步事件執行後觸發 eventEnd 事件');
    });

    event.on('eventAsync', function () {
    setImmediate(() => {
    console.log('異步事件觸發');
    // to do...
    this.emit('eventEnd');
    });
    });

    event.emit('eventAsync');
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1058 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 18:36 · PVG 02:36 · LAX 11:36 · JFK 14:36
    ♥ Do have faith in what you're doing.