Если я правильно понимаю, вы хотите вести список сообщений и добавлять каждое новое сообщение, поступающее через веб-сокеты, в этот список.
- Стремительный подход: создайте массив в вашем потребителе и измените его. это в обратном вызове .subscribe ():
const messages = [];
of(streamEvent)
.pipe(...your pipe here...)
.subscribe(message => messages.push(message))
Немного более необычно - вы можете сделать это прямо в своей трубе, и в результате наблюдаемая будет генерировать измененный массив каждый раз, когда добавляется новое сообщение:
of(streamEvent)
.pipe(
...your pipe here...,
scan((messages, msg) => [...messages, msg], []),
startWith([])
)
Это позволяет вам передать это доступно различным конечным потребителям, и они смогут использовать массив по мере его изменения, не дублируя логи c