【发布时间】:2017-09-27 09:21:35
【问题描述】:
RxJS:在我目前正在开发的应用程序的 Node.js 中的服务器上,我正在尝试确定哪个更好:处理所有来自可观察对象的传出发射的单个流(通过套接字连接进一步发射) ),或者将我的可观察对象分为几类。一种方式比另一种方式有什么缺点吗?让我说明一下我想问的问题...
例如:如果您要制作一个聊天应用程序,您是否会设置一个流并通过聊天室过滤掉订阅,例如:
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
是否有任何设计原则会导致您选择一种方式而不是另一种方式,或者您甚至会做一些完全不同的事情?选择其中一种模式会有什么缺点吗?如果单个 observable 必须处理每个单个对象,那么似乎可能会有阻塞的机会。 我在想,如果我分割流,如果它们是空的,我可以终止它们,并在订阅者正在寻找特定房间时重新打开它们。
【问题讨论】:
标签: javascript node.js rxjs