V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
TomVista
V2EX  ›  Node.js

node EventEmitter

  •  
  •   TomVista · 2020-05-14 11:19:14 +08:00 · 4308 次点击
    这是一个创建于 1435 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想在 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 条回复    2020-05-15 12:04:21 +08:00
    JayLin1011
        1
    JayLin1011  
       2020-05-15 12:04:21 +08:00   ❤️ 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');
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3553 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:44 · PVG 08:44 · LAX 17:44 · JFK 20:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.