Таким образом, функция publish
немедленно возвращается, каким-то образом планируя выполнение данного блока кода для немедленного выполнения (асинхронно).
Похоже, что это уведомляет группу слушателей, поэтому автор хотел запуститьцикл уведомлений позже, не блокируя код publish
.Также обратите внимание, что результат уведомления (если таковой имеется) не требуется для клиентского кода.
Побочным эффектом является то, что если один из подписчиков выдает исключение, метод publish
не затрагивается (другой вызовстек).
Может быть, это не идиоматично, но это довольно распространенный шаблон в JavaScript.Иногда он также используется для запуска других событий / тайм-аута, особенно в очень длительной функции.