首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:无法读取未定义的typescript nodejs的属性“”EventEmitter“”

TypeError:无法读取未定义的typescript nodejs的属性“”EventEmitter“”
EN

Stack Overflow用户
提问于 2019-04-29 21:30:10
回答 1查看 1.5K关注 0票数 1

我有一个运行在node上的typescript应用程序。

我正在使用'EventEmitter‘类发出变量值的更改。

这是我的一段代码

代码语言:javascript
复制
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 );
    });
  }

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

代码语言:javascript
复制
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"}

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2019-04-29 21:47:30

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

代码语言:javascript
复制
TS1192: Module '"events"' has no default export.

但这似乎是可行的:

代码语言:javascript
复制
import * as EventEmitter from 'events'

new EventEmitter();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55904473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档