@vasIvas

EventEmitter и а-синхронность?

Возможно ли при помощи EventEmitter.. не знаю, как сказать... создать асинхронную цепочку событий?
  • Вопрос задан
  • 2823 просмотра
Решения вопроса 1
Сам по себе EventEmitter.emit - синхронная функция, что может многих удивить.
process.on('ev', function() {
  console.log('ev');
});
(function() {
  console.log('a');
  process.emit('ev');
  console.log('b');
} ());
//a
//ev
//b

Но на этом синхронность заканчивается. Т.е. например если process.on('ev', cb) был вызван не столь тривиально и в нескольких местах в асинхронном коде, я бы не советовал вам даже пытаться понять какой из cb будет вызван первым. Я не утверждаю, что у вас не получится вычислить последовательность вызова, но говорю что вычислять ее в корне неправильно - это антипаттерн. Если вы хотите быть уверенным в последовательности вызова используйте коллбеки или промизы, но не события.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы