オブジェクトが混在する多くのファイルを読み込んでいます。root次のようなオブジェクトをストリーミングするストリームが 1 つあります。
// 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フィルター処理されたストリームにパイプして、 1 つのフィルター処理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"
}
オブジェクトのID がオブジェクトAの ID と一致するようにB
ストリームを処理Aして、各オブジェクト ID をマップと比較し、処理Bしてストリームに対応するオブジェクトがあるかどうかを確認したいB
Bのすべてのオブジェクトを処理する前にストリームを排出せずにこれを処理する方法がわかりませんA。
B私が最初に考えたのは、 の各エントリのクローンを作成することでしたA。それは可能ですか?
私の現在の試みはevent-streams es.map、ストリーム上Aおよびマップ関数内で使用して、Bそれを読み取って比較しようとしていることです。しかし、これは私に与えています:ABB
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Bのマップ内でリスナーを再定義しているため、エラーが発生しましたA