問題タブ [node.js-stream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3276 参照

javascript - _flush が終了する前に Node.js 変換ストリームで「finish」イベントが発生するのはなぜですか?

コールバックの「終了」は、_flush に渡されたコールバックが完了した後にのみトリガーされることを期待していますが、_flush が完了する前にトリガーされています。なんで?

終了のnode.js ストリーム ドキュメントには、すべてのデータが基になるシステムにフラッシュされた場合にのみ、イベントがトリガーされると記載されています。

Node の Transform ストリーム実装のソース コードを見ると、_flushコールバックが呼び出されたときにのみ終了をトリガーすることが意図されているように見えます。

何か見逃しているか、これは Node の Transform ストリームのバグです。前者だと思いますが、私の問題を見つけていません。ご協力いただきありがとうございます!

更新:モジュールが提供するように、への呼び出しをprocess.nextTick()への同期呼び出しに置き換えると、問題がなくなることに注意してください。この問題は、 内の非同期呼び出しによってのみトリガーされます。sleepsleep_flush

0 投票する
1 に答える
835 参照

node.js - ストリーム 2 でストリームの終わりを検出する

'data'ストリームが使用または'end'リスナーの場合、「クラシック」モードに切り替わり、ストリームハンドブックには次のように書かれていることを読んだところです。

「データ」リスナーを登録するたびに、ストリームを互換モードにするため、新しいstreams2 APIの利点が失われることに注意してください

では、新しいストリーム API の利点を活用するにはどうすればよいでしょうか? 私が現在これを行っている場合:

'end'リスナーを登録せずに同じことを行うにはどうすればよいですか

0 投票する
0 に答える
1132 参照

javascript - Node.js 2 つのストリームを比較するには?

オブジェクトが混在する多くのファイルを読み込んでいます。root次のようなオブジェクトをストリーミングするストリームが 1 つあります。

rootストリームを 2 つの別々のgrepフィルター処理されたストリームにパイプして、 1 つのフィルター処理action_type_aを呼び出すAと、次のようになります。

そのためのフィルタリングはaction_type_b B次のようになります。

私も別mapのIDを持っています

オブジェクトの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

0 投票する
0 に答える
868 参照

node.js - 外部の JavaScript ファイルからファイル システムにアクセスするにはどうすればよいですか?

「game.html」という名前の HTML ファイルを読み取るserver.jsという名前のファイルがあります。

その HTML ファイルは、「game.js」という名前の外部 JavaScript ファイルにリンクされています。

server.js ファイル内

game.html ファイル内

game.js ファイル内

game.js で「var fs = require('fs')」を使用すると、常にこのエラーが発生します。

ReferenceError: require が定義されていません

この問題の解決策はありますか?

0 投票する
1 に答える
106 参照

javascript - Node.js http チャット サーバー

Androidクライアントに接続するチャットサーバーを作成してみます。1 クライアントがサーバー上でデータを送信し、サーバーがそれを受信して​​残りのクライアントに送信します。そこで、「net」を使用しようとしましたが、うまくいきませんでした。サーバーでは、1490 ポートと 192.168.3.XX アドレスをリッスンしています。クライアントはサーバーに接続できるようになりましたが、データの送信は機能しません。コード: