Estou com dúvidas referente ao funcionamento de funções de evento (Events Emitter, Listener) da classe de eventos. Vou colocar um exemplo para facilitar.
//Exemplo de função do site oficial do nodejs https://nodejs.dev/en/learn/the-nodejs-event-emitter/
const EventEmitter = require('events');
const eventEmitter = new EventEmitter();
eventEmitter.on('start', (start, end) => {
setTimeout(()=> console.log('aguardando '), 1000);
console.log(`started from ${start} to ${end}`);
});
eventEmitter.emit('start', 2, 300);
console.log('fim')
/**
STDOUT started from 2 to 300
STDOUT time
STDOUT aguardando
*/
// Como preciso que ocorra
/**
STDOUT started from 2 to 300
STDOUT aguardando
STDOUT time
*/
Basicamente eu gostaria de esperar toda execução do listem para aí, sim, poder executar a próxima função, mas também não quero encadear a minha função ao evento. Na minha aplicação real são muitas estruturas encadeadas e eu gostaria de lidar de forma mais linear aguardando o termino de um listem para executar outro.