Если вы используете инструменты сборки, такие как Webpack или Browserify, тогда ваш «логический объект» может расширять Node's EventEmitter
(есть другие реализации, которые работают в браузере, такие как https://github.com/Olical/EventEmitter,, есливы не хотите связывать API-интерфейсы Node с инструментом сборки).
Ваш «логический объект», который является специализированным EventEmitter, использует асинхронный API-интерфейс chrome, который связывается с последовательными устройствами, а затем обрабатывает результаты.в соответствии с вашими правилами уровня данных, а затем генерирует свои собственные события, когда у него есть что-то полезное для пользовательского интерфейса.
Пользовательский интерфейс слушает и прослушивает, и генерирует события на вашем «логическом объекте», в зависимости от того, что происходит,Бонус: этот источник событий может также использоваться отдельными объектами пользовательского интерфейса для связи друг с другом через события.
EventEmitter - это ключ, который сделает этот вид разделения чистым, простым и расширяемым.