問題タブ [node-streams]

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 投票する
2 に答える
1549 参照

javascript - ノードモジュールにデータの「ストリーム」を返すためのテクニックは?

私が正しく質問していることを願っていますが、基本的に、NodeJSで、(長い) 計算の後にデータの最終的なチャンクではなく、CommonJSモジュールにデータのストリームを返す方法はありますか? 複数の方法があると仮定すると、それらのテクニックは何ですか?

たとえば、 CommonJSモジュールfindPrimesとして記述された関数があるとします。

find-primes.js

ご覧のとおり、この関数は、入力より小さいすべての素数の配列を返します。これらの数値をすべて計算した後、配列を返します。

このモジュールをノード スクリプトで使用するとします。

index.js

の引数で上記のスクリプトを実行すると25、次の (予想される) 出力が得られます。

ただし、10,000,000 など、はるかに大きな数を渡したとします。

これは機能しますが、理想的には、プログラムが終了する前に、計算した数値の書き出しを開始したいと考えています。

したがって、私のプログラムの実行にはまだ時間がかかりますが、「最初にすべてを計算してからすべての結果を出力する」よりもはるかに高速に画面に情報を出力し始めます。

この効果を達成するための最良の方法は何ですか? ストリーム? 約束

私はこのためのあらゆるテクニックを受け入れています、ありがとう。

0 投票する
2 に答える
1094 参照

node.js - gulp-tap を使用して Gulp パイプラインの次のアクションにファイル名を渡すにはどうすればよいですか?

HTML ファイルを取得し、gulp-inline-css を使用して CSS ファイルから取得したスタイルをインライン化する Gulp タスクがあります。私のタスクの元のバージョンでは、各 HTML ファイルに同じ CSS ファイルを使用していました。ここで、タスクが処理している HTML ファイルのファイル名に基づいて、タスクに CSS ファイルを選択させたいと考えています。

gulp-tapファイル名を取得するために使用しています。このinliner()関数は CSS ファイルへのパスを受け取り、すべてのインライン処理を実行します。

次の Gulp タスクは、ファイルごとに inliner() を実行しますが、結果をストリームに挿入するのに失敗しているようです。いくつかの異なるアプローチを試しましたが、inliner() の結果を元のストリームに戻すことができないようです。

gulp-tap の使い方が間違っていますか? これは非常に単純な使用例のようです。

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

node.js - Node.js はテキストを `spawnSync` の stdin として渡します

これは簡単だと思いますが、以下は期待どおりに機能しません。

wcノードからプロセスにデータをパイプしたい、たとえば(説明のための任意のコマンド) 。

docsおよびその他のSOの質問は、 Stream を渡すことが機能することを示しているようです。

残念ながら、これはエラーをスローします:

オプション「stdio」の値「Readable { ... } は無効です」

からの関連するコードはinternal/child_process.js、予想される有効なオプションが何であるかをすぐには明らかにしません。