Javascript RxJS:与多个单独的观测值相比,单个观测值有什么缺点吗?
RxJS:在我目前正在开发的应用程序Node.js中的服务器上,我正在尝试确定哪一个更好:一个单独的流,处理所有来自观察对象的传出发射(通过套接字连接进一步发射),或者将我的观察对象划分为多个类别。一种方法比另一种方法有缺点吗?让我举例说明我想问的问题 例如:如果您要制作一个聊天应用程序,您会设置一个单一的流,并通过聊天室过滤订阅,例如:Javascript RxJS:与多个单独的观测值相比,单个观测值有什么缺点吗?,javascript,node.js,rxjs,Javascript,Node.js,Rxjs,RxJS:在我目前正在开发的应用程序Node.js中的服务器上,我正在尝试确定哪一个更好:一个单独的流,处理所有来自观察对象的传出发射(通过套接字连接进一步发射),或者将我的观察对象划分为多个类别。一种方法比另一种方法有缺点吗?让我举例说明我想问的问题 例如:如果您要制作一个聊天应用程序,您会设置一个单一的流,并通过聊天室过滤订阅,例如: handleEverythingObservable // STREAM OF ALL ROOMS .filter(obj => obj.chatR
handleEverythingObservable // STREAM OF ALL ROOMS
.filter(obj => obj.chatRoom === joinedChatRoom)
.subscribe(emitToConnectedSocket);
或者您是否有一个对象将流划分为类别(如房间)并具有多个单独的流,如:
objectOfObservables = {
room1: room1Observable, // STREAM OF A SINGLE ROOM
room2: room2Observable // STREAM OF A SINGLE ROOM
};
objectOfObservables.room1.subscribe(emitToConnectedSocket);
// NO FILTERING NECESSARY
有没有什么设计原则会让你选择一种方式而不是另一种方式,或者你会做一些完全不同的事情?选择这些模式中的一种会有任何缺点吗?如果一个可观察对象必须处理每一个对象,那么似乎有可能发生阻塞。
我在想,如果我分割流,如果流是空的,我可以终止它们,并在订户寻找特定房间时重新打开它们。在您的用例中,我会选择集中式可观察
谢谢你的回复。我喜欢你说话的方式。我将在单个流中构造它以保持简单性。