【问题标题】:TypeError: Cannot read property 'EventEmitter' of undefined typescript nodejsTypeError:无法读取未定义的打字稿nodejs的属性'EventEmitter'
【发布时间】:2019-04-29 13:30:10
【问题描述】:

我在节点上运行了一个打字稿应用程序。

我正在使用“EventEmitter”类来发出变量值的变化。

这是我的一段代码,

import events from 'events';

public async updateStream(streamContext: string, state: boolean): Promise<string> {
    const eventEmitter = new events.EventEmitter();
    if (state === true) {
      return StreamManagement.instance.activeStreams.get(streamContext).streamState = 'Paused';
    } else {
      const streamState = StreamManagement.instance.activeStreams.get(streamContext).streamState = 'Active';
      eventEmitter.emit('resume');
      return streamState;
    }
  }

 public async waitForStreamActive(stream: Stream) {
    const eventEmitter = new events.EventEmitter();
    // tslint:disable-next-line:no-unused-expression
    return new Promise(( resolve ) => {
      eventEmitter.on('resume', resolve );
    });
  }

这段代码构建良好。但是当我运行代码时,就像执行操作一样,我收到以下错误,

error: errorHandler - Apply - Hit Unhandled exception {"timestamp":"2019-04-29T12:33:49.209Z"}
error: errorHandler - Apply - Cannot read property 'EventEmitter' of undefined - TypeError: Cannot read property 'EventEmitter' of undefined
    at StreamResource.updateStream (C:\Vertigo\core\reference_platform\dist\index.js:10695:51)
    at StreamService.patchStream (C:\Vertigo\core\reference_platform\dist\index.js:22524:40)
    at process._tickCallback (internal/process/next_tick.js:68:7) {"timestamp":"2019-04-29T12:33:49.215Z"}

我做错了什么?

【问题讨论】:

    标签: node.js typescript dom-events eventemitter


    【解决方案1】:

    我已经建立了最小的项目来重现它,并且 ts 编译器立即警告我:

    TS1192: Module '"events"' has no default export.
    

    但这似乎有效:

    import * as EventEmitter from 'events'
    
    new EventEmitter();
    

    【讨论】:

      猜你喜欢
      • 2019-06-27
      • 2017-03-06
      • 2017-07-21
      • 2022-09-23
      • 2022-11-29
      • 2017-08-30
      • 2017-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多