2016-10-11 8 views
2

Могу ли я создать очередь сообщений для сообщений pub/sub с помощью RxJS внутри приложения angulajs. Я имею, например, два модуля: ModuleA ModuleB Они существуют как отдельный пакет npm, но подключены в ModuleC - это основная оболочка.Использование RxJS для реализации MessageBus для связи между модулями angularjs

Я не хочу создавать зависимость как ModuleD и создавать плотную связь между модулями. Поэтому я думал о создании шины сообщений с использованием RxJS. Возможно ли это?

Я полагаю, АНИ будет выглядеть: RxQueue.subscribe("name:of:the:queuemessage", handler => { handler.result }); RxQueue.create("name:of:the:queuemessage", (observer) => { // implementation of usual Rx subscribtion })

+0

Используйте [RxJS Extensions for Angular] (https://github.com/Reactive-Extensions/rx.angular.js). – georgeawg

+0

@georgeawg не относится к проблеме. Я не хочу создавать связь между модулями. – IamStalker

ответ

0

Это может быть не совсем то, что вы ищете, но и для распространения состояния и данных между различными компонентами и модулями, вы можете использовать Redux/ngrx-магазин.

Redux - это архитектура, в которой вы можете отправить состояние в магазин. Магазин будет обновлять себя и уведомлять всех, кто его слушает, если что-то изменилось.

Таким образом, ваши модули могут подписаться на магазин и прослушать события. Если они хотят общаться, они могут отправить сообщение в магазин. Затем магазин будет уведомлять всех слушающих, если что-то изменилось. Единственное отличие состоит в том, что этот объект хранилища фактически сохранит этот объект в качестве базы данных temp. Это не похоже на поведение в очереди.

Оформить заказ http://redux.js.org/ для получения дополнительной информации.

+0

Привет, спасибо за ответ. Но я действительно ищу поведение в очереди. Я рассматривал реализацию сокращения, но накладные расходы для моей конкретной реализации. И используя его с angularjs (ng1), он на самом деле лишний. Но я передумаю, если вы сможете показать мне хороший рабочий пример. Конечно, если это не хлопот для вас. – IamStalker