У меня есть приложение для машинописи, работающее на NodeJS, где я использую класс Event Emitter для отправки события при изменении значения переменной.
Я хочу дождаться, чтобы событие продолжалось, и, следовательно,Мне нужно вызвать ожидание в моем коде машинописи.
Это то, что я делаю,
if (StreamManagement.instance.activeStreams.get(streamObj.streamContext).streamState === 'Paused') {
await StreamManagement.instance.waitForStreamActive(streamObj);
}
Это мой метод waitForStreamActive,
public async waitForStreamActive(stream: Stream) {
const eventEmitter = new EventEmitter();
return new Promise(( resolve ) => {
eventEmitter.on('resume', resolve );
});
}
И явызвать событие emit следующим образом:
public async updateStream(streamContext: string, state: boolean): Promise<string> {
const eventEmitter = new EventEmitter();
if (state === Resume) {
const streamState = StreamManagement.instance.activeStreams.get(streamContext).streamState = 'Active';
eventEmitter.emit('resume');
return streamState;
}
}
Все эти три фрагмента кода находятся в разных классах и в разных файлах.
Этот фрагмент кода, похоже, не работает так, как я ожидал.
Я хочу добиться ожидания в javascript, пока обещание не будет выполнено.До тех пор, пока состояние не изменится на возобновление.
Может кто-нибудь указать мне, где я иду не так?