Ответ вот здесь:
либо создать массив и через foreach перебирать все поступившие данные, что будет быстрее?
Вам пришло сообщение, вы положили его в массив. Потом еще одно, потом еще одно. Потом, по какой-то причине (событие, таймер), должны вызвать forEach.
- Т.е. сообщение, какое-то время просто лежит в массиве без обработки.
- А если ошибетесь и забудете, после forEach, массив очисить, продолжительность обработки будет расти со временем.
- а что, если в момент, когда forEach выполнился, а массив вы еще не очистили, вам придут сообщения? Они лягут в массив и потом удалятся сразу
Лучшей рекомендацией дейстительно будет посмотреть в сторону rxjs