問題タブ [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.
javascript - _flush が終了する前に Node.js 変換ストリームで「finish」イベントが発生するのはなぜですか?
コールバックの「終了」は、_flush に渡されたコールバックが完了した後にのみトリガーされることを期待していますが、_flush が完了する前にトリガーされています。なんで?
終了のnode.js ストリーム ドキュメントには、すべてのデータが基になるシステムにフラッシュされた場合にのみ、イベントがトリガーされると記載されています。
Node の Transform ストリーム実装のソース コードを見ると、_flush
コールバックが呼び出されたときにのみ終了をトリガーすることが意図されているように見えます。
何か見逃しているか、これは Node の Transform ストリームのバグです。前者だと思いますが、私の問題を見つけていません。ご協力いただきありがとうございます!
更新:モジュールが提供するように、への呼び出しをprocess.nextTick()
への同期呼び出しに置き換えると、問題がなくなることに注意してください。この問題は、 内の非同期呼び出しによってのみトリガーされます。sleep
sleep
_flush
node.js - ストリーム 2 でストリームの終わりを検出する
'data'
ストリームが使用または'end'
リスナーの場合、「クラシック」モードに切り替わり、ストリームハンドブックには次のように書かれていることを読んだところです。
「データ」リスナーを登録するたびに、ストリームを互換モードにするため、新しいstreams2 APIの利点が失われることに注意してください
では、新しいストリーム API の利点を活用するにはどうすればよいでしょうか? 私が現在これを行っている場合:
'end'
リスナーを登録せずに同じことを行うにはどうすればよいですか
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
それを読み取って比較しようとしていることです。しかし、これは私に与えています:A
B
B
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
B
のマップ内でリスナーを再定義しているため、エラーが発生しましたA
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 が定義されていません
この問題の解決策はありますか?
javascript - Node.js http チャット サーバー
Androidクライアントに接続するチャットサーバーを作成してみます。1 クライアントがサーバー上でデータを送信し、サーバーがそれを受信して残りのクライアントに送信します。そこで、「net」を使用しようとしましたが、うまくいきませんでした。サーバーでは、1490 ポートと 192.168.3.XX アドレスをリッスンしています。クライアントはサーバーに接続できるようになりましたが、データの送信は機能しません。コード: