под капотом он теряет события(если очень быстро и много) и только увеличение буфера решает эту проблему. Хотя он вроде как не должен от размера буфера зависеть?
Сам по-себе emit ничего не теряет
Поэтому давайте больше подробностей :)
Подробности простые, я вижу, что emit отрабатывает, но сообщение не приходит, но увеличивая буффер все работает ок, но тут есть логика так как тогда под капотом в либе отрабатывает tryEmit. Фактически что-то происходит под капотом в функции emitSuspend, там есть lock и возможно это и приводит к потере, возможно состояние гонки
tryEmit зависит от буфера как я помню, а emit это саспенд он не зависит , он не примет новое событие пока со старым не закончили.
Внутри emit находится tryEmit: if (tryEmit(value)) return, поэтому я и говорю, что буфер решает проблему для emit, так как он фактически превращается в tryEmit под капотом
У вас там какой флоу?:)
Обсуждают сегодня