TypeError: Невозможно прочитать свойство 'EventEmitter' из неопределенных машинописных узлов nodejs - PullRequest
0 голосов
/ 29 апреля 2019

У меня на узле запущено приложение для машинописи.

Я использую класс 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"}

Что я делаю не так?

1 Ответ

2 голосов
/ 29 апреля 2019

Я создал минимальный проект для его воспроизведения, и сразу же компилятор предупреждает меня о:

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

Но это похоже на работу:

import * as EventEmitter from 'events'

new EventEmitter();
...