мне нужна шина сообщений. Чтобы при отправке данных указать в какой канал отправлять и payload. Затем в нужном месте подписываюсь на нужный канал и получаю сообщения. Когда-то нужно отписаться именно от конкретного канала - чтобы больше не получать сообщения
1) В сервисе возвращайте return this.emitter.pipe(...), без .subscribe. Тогда не понадобится handler прокидывать и будет возможность нормально организовать отписку
Можно немного переделать логику и в take() прокидывать число оставшихся непрочитанных сообщений. Соответственно, надо где-то хранить информацию, какие сообщения прочитаны, а какие нет