我正在阅读包含混合对象的许多文件。我有一个root
流来流式传输对象:
// root stream
{"action": "action_type_a", "id": "1234"}
{"action": "action_type_b", id: "24566"}
{"action": "action_type_b", id: "0808098"}
{"action": "action_type_b", id: "8098098"}
{"action": "action_type_a", "id": "098098"}
{"action": "action_type_b", id: "08098"}
我将root
流传输到2个单独的grep
过滤流中,对action_type_a
进行过滤,我们将调用A
,看起来像:
// stream A
{"action": "action_type_a", "id": "1234"}
{"action": "action_type_a", "id": "098098"}
和action_type_b
B
的一次过滤,如下所示:
// stream B
{"action": "action_type_b", id: "24566"}
{"action": "action_type_b", id: "0808098"}
{"action": "action_type_b", id: "8098098"}
{"action": "action_type_b", id: "08098"}
我还有一个单独的map
个ID
// id map
{
"1234" : "098098",
""098098" : "8098098"
}
A
个对象上的ID可以与B
个对象上的ID匹配
我想处理流A
将每个对象ID与地图进行比较,然后处理B
以查看流B
中是否有相应的对象
我不知道在处理B
中的每个对象之前如何在不排空流A
的情况下处理此问题。
我的第一个想法是为B
中的每个条目克隆A
。那可能吗?
我目前的尝试是在流event-streams
上使用es.map
A
并在地图功能内部尝试阅读B
并将其与{进行比较{1}}我读了A
我也写信给B
。然而,这给了我:
B
错误,因为我在(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
B
的听众