Pull to refresh

Comments 11

EventBus не перестаёт быть антипаттерном, даже если написать его на Котлин.
вы сударь не совсем правы. иногда это очень даже паттерн
а что такого «анти» в событийных методах?
слоты/сигналы устроены приблизительно также.
и если задуматься, все системы событий — это эвентбаз в том или ином виде
занятно недавно думал на эту тему. спасиба. похоже пригодится
ну всеже моя бибилиотека немного про другое, это всеже больше про события

Начинаем наш Quiz:


  • во-первых, события обрабатываются синхронно или асинхронно?
  • отсылка нового сообщения изнутри хендлера обрабатывается сразу же или ставится в очередь и обрабатывается по завершении текущего сообщения?
  • при создании новой подписки изнутри текущего хендлера на это же сообщение будет ли обрабатываемое сообщение переслано новому хендлеру?
  • если из текущего хендлера я отписываю другой хендлер, который должен будет обработать данное событие, будет ли ему послано текущее событие после такой отписки?
  • как поведет себя EventBus если я два раза вызову subscribe с одиними и теми же параметрами?
  • при возникновении исключительной ситуации внутри хендлера, будет ли сообщение доставлено другим хендлерам или же цепочка прервется?
  • можно ли один и тот же обработчик регистрировать для разных событий?
1) События обрабатываются синхронно, но так как внутри kotlin object то это потоко безопасный объект.
2) Обрабатывается сразу же
3) Тут все зависит указали ли вы приоритет вызова коллбэка для подписывамого события. если приоритет не указан то вызовется сначала первая функция слушателя а затем вторая которая находиться внутри первого.
4) Не будет, вы же отписываете слушатель. (опять же вопрос приоритета, если у последней приортиет вызова больше то естественно она вызовется первой)
5) Никак, он запишет только первый вызов, второй проигнорирует
6) К сожалению в настоящий момент я исключения не обрабатываются, спасибо за пояснение. Цепочка прервется.
7) Да можно
7) начиная с версии 0.1.7 можно подписыватсья на список событий в одном методе subscribeList(....)
Sign up to leave a comment.

Articles