Autumn Event Publisher — это библиотека для работы с событиями в приложениях на OneScript. Она реализует механизм публикации и подписки на события, позволяя легко создавать и обрабатывать события в приложении с помощью аннотаций.
- Публикация событий: Позволяет инициировать события из различных частей приложения.
- Автоматическая регистрация подписчиков: Подписчики на события регистрируются автоматически с помощью аннотаций.
- Обработка событий: Позволяет подписчикам реагировать на события с передачей параметров для дальнейшей обработки.
- Масштабируемость: Гибкая система подписки и публикации событий для любого масштаба приложения.
Для установки библиотеки используйте команду:
opm install autumn-event-publisher
N.B. Библиотека требует OneScript 2.0 для своей работы.
Подписчики регистрируются с помощью аннотаций, которые указывают, какое событие метод будет обрабатывать.
&ПодпискаНаСобытие("TestEvent")
Процедура ОбработатьСобытие(Источник, Параметр1, Параметр2)
// Логика обработки события
КонецПроцедуры
&Желудь
Процедура ПриСозданииОбъекта()
КонецПроцедуры
- Источник — объект, инициировавший событие.
- Параметр1, Параметр2 — параметры, переданные при публикации события.
Событие публикуется с помощью метода ОпубликоватьСобытие
жёлудя ПубликаторСобытий
, который принимает три параметра: источник события, имя события и массив параметров события.
ПараметрыСобытия = Новый Массив;
ПараметрыСобытия.Добавить("Данные1");
ПараметрыСобытия.Добавить("Данные2");
ПубликаторСобытий.ОпубликоватьСобытие(ЭтотОбъект, "TestEvent", ПараметрыСобытия);
- ЭтотОбъект - объект, который инициировал событие - источник события.
- "TestEvent" - имя события, на которое подписаны подписчики.
- ПараметрыСобытия — массив данных, каждый элемент которого передается в метод подписчика как отдельный параметр.
Метод, зарегистрированный через аннотацию, автоматически вызывается, когда событие с соответствующим именем публикуется.
Пример выше показывает, как подписчик обрабатывает событие через метод ОбработатьСобытие
.
Библиотека распространяется под лицензией MIT. Для получения подробной информации смотрите файл LICENSE.