Readable class
- Extends
-
Stream
コンストラクター
| Readable(Readable |
プロパティ
| closed |
|
| destroyed |
|
| errored | ストリームがエラーで破壊された場合はエラーを返します。 |
| readable |
|
| readable |
ストリームが |
| readable |
|
| readable |
与えられた |
| readable |
イベントが |
| readable |
|
| readable |
この |
| readable |
このプロパティは、キュー内で読み取れるバイト(またはオブジェクト)の数を含みます。 この値は、 |
| readable |
与えられた |
メソッド
| add |
|
| add |
|
| compose(Writable |
この方法では、 詳細については、 |
| destroy(Error) | ストリームを破棄します。 オプションで
実装者はこの手法を上書きせず、代わりに |
| drop(number, Abortable) | このメソッドは、最初の 制限 チャンクを最初にドロップした新しいストリームを返します。 |
| emit(string | symbol, any[]) | |
| emit<E>(E, Readable |
|
| every((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<Readable |
この方法は |
| filter((data: any, options?: Abortable) => boolean | Promise<boolean>, Readable |
この方法はストリームのフィルタリングを可能にします。 ストリーム内の各チャンクごとに fn 関数が呼び出され、もしtruey値を返すと、そのチャンクは結果ストリームに渡されます。
もしfn関数が約束を返すなら、その約束は |
| find((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<Readable |
|
| find<T>((data: any, options?: Abortable) => data, Pick<Readable |
この方法は |
| flat |
この方法は、各チャンクにコールバックを適用し、その結果をフラット化することで新しいストリームを返します。 fnからストリームや他の反復可能または非同期反復可能を返すことも可能であり、その結果のストリームは返されたストリームに統合(フラット化)されます。 |
| for |
この方法はストリームの反復処理を可能にします。 ストリーム内の各チャンクごとに fn 関数が呼び出されます。
もしfn関数が約束を返すなら、その約束は この方法は この方法は、 |
| from(Iterable<any> | Async |
イテレーターからReadable Streamsを作成するためのユーティリティ手法。 |
| from |
ウェブ |
| is |
ストリームが読み取られたかキャンセルされたかを返します。 |
| is |
|
| iterator(Readable |
この方法で作成されたイテレーターは、 |
| listener |
|
| listener |
|
| listeners(string | symbol) | |
| listeners<E>(E) | |
| map((data: any, options?: Abortable) => any, Readable |
この方法により、ストリーム上のマッピングが可能になります。
fn関数はストリーム内のすべてのチャンクごとに呼び出されます。
fn関数が約束を返すと、その約束は結果ストリームに渡される前に |
| off(string | symbol, (args: any[]) => void) | |
| off<E>(E, (args: Readable |
|
| on(string | symbol, (args: any[]) => void) | |
| on<E>(E, (args: Readable |
|
| once(string | symbol, (args: any[]) => void) | |
| once<E>(E, (args: Readable |
|
| pause() |
|
| prepend |
|
| prepend |
|
| prepend |
|
| prepend |
|
| push(any, Buffer |
|
| raw |
|
| raw |
|
| read(number) |
オプションの
したがって、
オブジェクトモードの
|
| reduce<T>((previous: any, data: any, options?: Abortable) => T) | このメソッドはストリームの各チャンクで順番に fn を呼び出し、前の要素の計算結果をそのチャンクに渡します。 リ約の最終値に対する約束を返します。
初期値が提供されない場合は、ストリームの最初のチャンクが初期値として使用されます。
ストリームが空の場合、 リデューサー関数はストリームを要素ごとに反復するため、 並行 パラメータや並列処理は存在しません。 リダクションを同時に行うには、非同期関数を |
| reduce<T>((previous: T, data: any, options?: Abortable) => T, T, Abortable) | |
| remove |
|
| remove |
|
| remove |
|
| remove |
|
| resume() |
|
| set |
デフォルトではエンコーディングは割り当てられず、ストリームデータは
|
| some((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<Readable |
この方法は |
| take(number, Abortable) | このメソッドは最初の リミット チャンクを持つ新しいストリームを返します。 |
| to |
この方法により、ストリームの内容を簡単に取得できます。 この方法はストリーム全体をメモリに読み込むため、ストリームの利点を相殺します。 これは相互運用性と利便性を重視しており、ストリームを消費する主な方法ではありません。 |
| to |
|
| unpipe(Writable |
|
| unshift(any, Buffer |
プッシュとは異なり、 |
| wrap(Readable |
Node.js 0.10以前は、ストリームズは現在の定義通りの全
|
| [async |
|
| [to |
これにより、ストリームの内部バッファを 返されたイテレータは検証済みソースとしてタグ付けされているため、
|
継承されたメソッド
| event |
エミッターがリスナーを登録したイベントを一覧表示する配列を返します。
|
| get |
|
| pipe<T>(T, Pipe |
|
| set |
既定では、 呼び出しをチェーンできるように、 |
| [capture |
|
コンストラクターの詳細
Readable(ReadableOptions<Readable>)
プロパティの詳細
closed
trueが放出された後の'close'です。
closed: boolean
プロパティ値
boolean
destroyed
trueが呼ばれた後にreadable.destroy()ですか?
destroyed: boolean
プロパティ値
boolean
errored
ストリームがエラーで破壊された場合はエラーを返します。
errored: null | Error
プロパティ値
null | Error
readable
readableAborted
ストリームが 'end'を出す前に破壊されたかエラーかを返します。
readableAborted: boolean
プロパティ値
boolean
readableDidRead
'data'が発信されたかどうかを返します。
readableDidRead: boolean
プロパティ値
boolean
readableEncoding
与えられたencoding流のプロパティReadableゲッター。
encodingプロパティはsetEncodingメソッドで設定できます。
readableEncoding: null | BufferEncoding
プロパティ値
null | BufferEncoding
readableEnded
readableFlowing
readableHighWaterMark
このhighWaterMark作成時に渡されたReadableの値を返します。
readableHighWaterMark: number
プロパティ値
number
readableLength
このプロパティは、キュー内で読み取れるバイト(またはオブジェクト)の数を含みます。 この値は、 highWaterMarkの状況に関する内省データを提供します。
readableLength: number
プロパティ値
number
readableObjectMode
与えられたobjectMode流のプロパティReadableゲッター。
readableObjectMode: boolean
プロパティ値
boolean
メソッドの詳細
addListener(string | symbol, (args: any[]) => void)
function addListener(eventName: string | symbol, listener: (args: any[]) => void): Readable
パラメーター
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
返品
addListener<E>(E, (args: ReadableEventMap[E]) => void)
function addListener<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): Readable
パラメーター
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
返品
compose(WritableStream | WritableStream<any> | TransformStream<any, any> | (source: any) => void, Abortable)
import { Readable } from 'node:stream';
async function* splitToWords(source) {
for await (const chunk of source) {
const words = String(chunk).split(' ');
for (const word of words) {
yield word;
}
}
}
const wordsStream = Readable.from(['text passed through', 'composed stream']).compose(splitToWords);
const words = await wordsStream.toArray();
console.log(words); // prints ['text', 'passed', 'through', 'composed', 'stream']
readable.compose(s) は stream.compose(readable, s) と等価です。
この方法では、 AbortSignal が提供され、中止時に合成されたストリームが破壊されます。
詳細については、stream.compose(...streams) を参照してください。
function compose(stream: WritableStream | WritableStream<any> | TransformStream<any, any> | (source: any) => void, options?: Abortable): Duplex
パラメーター
- stream
-
WritableStream | WritableStream<any> | TransformStream<any, any> | (source: any) => void
- options
-
Abortable
返品
Duplex
この流れは streamと構成されています。
destroy(Error)
ストリームを破棄します。 オプションで 'error' イベントを発信し、 'close' イベントを発信することもできます( emitClose が falseに設定されていない場合)。 この呼び出しの後、読み取り可能なストリームは内部リソースを解放し、その後の push() 呼び出しは無視されます。
destroy()が呼び出されると、それ以上の通話は no-op となり、_destroy()からの誤りは'error'として発信できません。
実装者はこの手法を上書きせず、代わりに readable._destroy()を実装すべきです。
function destroy(error?: Error): Readable
パラメーター
- error
-
Error
このエラーは 'error' 事象でペイロードとして渡されます
返品
drop(number, Abortable)
このメソッドは、最初の 制限 チャンクを最初にドロップした新しいストリームを返します。
function drop(limit: number, options?: Abortable): Readable
パラメーター
- limit
-
number
読み取り可能なチャンクの数を落とす。
- options
-
Abortable
返品
最初から 制限 チャンクがドロップされたストリーム。
emit(string | symbol, any[])
function emit(eventName: string | symbol, args: any[]): boolean
パラメーター
- eventName
-
string | symbol
- args
-
any[]
返品
boolean
emit<E>(E, ReadableEventMap[E])
function emit<E>(eventName: E, args: ReadableEventMap[E]): boolean
パラメーター
- eventName
-
E
- args
-
ReadableEventMap[E]
返品
boolean
every((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<ReadableOperatorOptions, "signal" | "concurrency">)
この方法は Array.prototype.every に似ており、ストリーム内の各チャンクで fn を呼び出して、待ちたい返り値が fnの真値であるかを確認します。 チャンク返り値に対するawait呼び出しがフェイルシーになると、ストリームは破棄され、約束は達成falseされます。
チャンクに対するすべての fn 呼び出しが真値(truthy)を返す場合、その約束は trueで満たされます。
function every(fn: (data: any, options?: Abortable) => boolean | Promise<boolean>, options?: Pick<ReadableOperatorOptions, "signal" | "concurrency">): Promise<boolean>
パラメーター
- fn
-
(data: any, options?: Abortable) => boolean | Promise<boolean>
ストリームの各チャンクで呼び出す関数です。 非同期かどうかは別として。
- options
-
Pick<ReadableOperatorOptions, "signal" | "concurrency">
返品
Promise<boolean>
fntrueがすべてのチャンクに対して真値(truthy)値を返すかどうかを評価する約束です。
filter((data: any, options?: Abortable) => boolean | Promise<boolean>, ReadableOperatorOptions)
この方法はストリームのフィルタリングを可能にします。 ストリーム内の各チャンクごとに fn 関数が呼び出され、もしtruey値を返すと、そのチャンクは結果ストリームに渡されます。
もしfn関数が約束を返すなら、その約束はawaitされます。
function filter(fn: (data: any, options?: Abortable) => boolean | Promise<boolean>, options?: ReadableOperatorOptions): Readable
パラメーター
- fn
-
(data: any, options?: Abortable) => boolean | Promise<boolean>
ストリームからチャンクをフィルタリングする関数です。 非同期かどうかは別として。
- options
-
ReadableOperatorOptions
返品
述語 fn でフィルタリングされたストリームです。
find((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<ReadableOperatorOptions, "signal" | "concurrency">)
function find(fn: (data: any, options?: Abortable) => boolean | Promise<boolean>, options?: Pick<ReadableOperatorOptions, "signal" | "concurrency">): Promise<any>
パラメーター
- fn
-
(data: any, options?: Abortable) => boolean | Promise<boolean>
- options
-
Pick<ReadableOperatorOptions, "signal" | "concurrency">
返品
Promise<any>
find<T>((data: any, options?: Abortable) => data, Pick<ReadableOperatorOptions, "signal" | "concurrency">)
この方法は Array.prototype.find に似ており、ストリーム内の各チャンクで fn を呼び出し、 fnの真値を持つチャンクを探します。
fn呼び出しの待ち望まれた返り値が真実値になると、ストリームは破棄され、約束はfnが真理値を返した値で満たされます。
チャンクに対するすべての fn 呼び出しが偽の値を返す場合、その約束は undefinedで満たされます。
function find<T>(fn: (data: any, options?: Abortable) => data, options?: Pick<ReadableOperatorOptions, "signal" | "concurrency">): Promise<undefined | T>
パラメーター
- fn
-
(data: any, options?: Abortable) => data
ストリームの各チャンクで呼び出す関数です。 非同期かどうかは別として。
- options
-
Pick<ReadableOperatorOptions, "signal" | "concurrency">
返品
Promise<undefined | T>
fnが真値で評価した最初のチャンクに対して、または要素が見つからなければundefinedに対して評価する約束。
flatMap((data: any, options?: Abortable) => any, Pick<ReadableOperatorOptions, "signal" | "concurrency">)
この方法は、各チャンクにコールバックを適用し、その結果をフラット化することで新しいストリームを返します。
fnからストリームや他の反復可能または非同期反復可能を返すことも可能であり、その結果のストリームは返されたストリームに統合(フラット化)されます。
function flatMap(fn: (data: any, options?: Abortable) => any, options?: Pick<ReadableOperatorOptions, "signal" | "concurrency">): Readable
パラメーター
- fn
-
(data: any, options?: Abortable) => any
ストリーム内のすべてのチャンクをマッピングする関数です。 同期が悪いかもしれません。 小川や発電機かもしれません。
- options
-
Pick<ReadableOperatorOptions, "signal" | "concurrency">
返品
関数 fnでフラットマップされたストリームです。
forEach((data: any, options?: Abortable) => void | Promise<void>, Pick<ReadableOperatorOptions, "signal" | "concurrency">)
この方法はストリームの反復処理を可能にします。 ストリーム内の各チャンクごとに fn 関数が呼び出されます。
もしfn関数が約束を返すなら、その約束はawaitされます。
この方法は for await...of ループとは異なり、選択的にチャンクを同時に処理できます。
さらに、 forEach の反復は signal オプションを通過し、関連するAbortControllerを中止することでのみ停止できますが、 for await...of は break や returnで停止できます。
いずれにせよ、その川は破壊されます。
この方法は、 'data' イベントを聞くのとは異なり、基盤となる機械で readable イベントを利用し、同時実行の fn コール数を制限できます。
function forEach(fn: (data: any, options?: Abortable) => void | Promise<void>, options?: Pick<ReadableOperatorOptions, "signal" | "concurrency">): Promise<void>
パラメーター
- fn
-
(data: any, options?: Abortable) => void | Promise<void>
ストリームの各チャンクで呼び出す関数です。 非同期かどうかは別として。
- options
-
Pick<ReadableOperatorOptions, "signal" | "concurrency">
返品
Promise<void>
配信が終わったらの約束だ。
from(Iterable<any> | AsyncIterable<any>, ReadableOptions<Readable>)
イテレーターからReadable Streamsを作成するためのユーティリティ手法。
static function from(iterable: Iterable<any> | AsyncIterable<any>, options?: ReadableOptions<Readable>): Readable
パラメーター
- iterable
-
Iterable<any> | AsyncIterable<any>
Symbol.asyncIteratorまたはSymbol.iterator反復可能なプロトコルを実装するオブジェクト。 null 値が渡されると「エラー」イベントを発します。
- options
-
ReadableOptions<Readable>
new stream.Readable([options])に提供された選択肢。 デフォルトでは、Readable.from()options.objectModeをtrueに設定しますが、options.objectModeをfalseに設定して明示的にオプトアウトしない限りは。
返品
fromWeb(ReadableStream<any>, Pick<ReadableOptions<Readable>, "encoding" | "highWaterMark" | "objectMode" | "signal">)
ウェブReadableからReadableStreamを作成するためのユーティリティ手法。
static function fromWeb(readableStream: ReadableStream<any>, options?: Pick<ReadableOptions<Readable>, "encoding" | "highWaterMark" | "objectMode" | "signal">): Readable
パラメーター
- readableStream
-
ReadableStream<any>
- options
-
Pick<ReadableOptions<Readable>, "encoding" | "highWaterMark" | "objectMode" | "signal">
返品
isDisturbed(ReadableStream<any> | ReadableStream)
ストリームが読み取られたかキャンセルされたかを返します。
static function isDisturbed(stream: ReadableStream<any> | ReadableStream): boolean
パラメーター
- stream
-
ReadableStream<any> | ReadableStream
返品
boolean
isPaused()
readable.isPaused()メソッドはReadableの現在の動作状態を返します。
これは主に readable.pipe() 法の基盤となるメカニズムによって利用されます。
ほとんどの場合、この方法を直接使う理由はありません。
const readable = new stream.Readable();
readable.isPaused(); // === false
readable.pause();
readable.isPaused(); // === true
readable.resume();
readable.isPaused(); // === false
function isPaused(): boolean
返品
boolean
iterator(ReadableIteratorOptions)
この方法で作成されたイテレーターは、 for await...of ループが return、 break、または throwで終了した場合にストリームの破壊をキャンセルするか、反復中にストリームがエラーを出した場合に破壊するオプションをユーザーに与えます。
function iterator(options?: ReadableIteratorOptions): AsyncIterator<any, undefined, any>
パラメーター
- options
-
ReadableIteratorOptions
返品
AsyncIterator<any, undefined, any>
listenerCount(string | symbol, (args: any[]) => void)
function listenerCount(eventName: string | symbol, listener?: (args: any[]) => void): number
パラメーター
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
返品
number
listenerCount<E>(E, (args: ReadableEventMap[E]) => void)
function listenerCount<E>(eventName: E, listener?: (args: ReadableEventMap[E]) => void): number
パラメーター
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
返品
number
listeners(string | symbol)
function listeners(eventName: string | symbol): (args: any[]) => void[]
パラメーター
- eventName
-
string | symbol
返品
(args: any[]) => void[]
listeners<E>(E)
function listeners<E>(eventName: E): (args: ReadableEventMap[E]) => void[]
パラメーター
- eventName
-
E
返品
(args: ReadableEventMap[E]) => void[]
map((data: any, options?: Abortable) => any, ReadableOperatorOptions)
この方法により、ストリーム上のマッピングが可能になります。
fn関数はストリーム内のすべてのチャンクごとに呼び出されます。
fn関数が約束を返すと、その約束は結果ストリームに渡される前にawaitされます。
function map(fn: (data: any, options?: Abortable) => any, options?: ReadableOperatorOptions): Readable
パラメーター
- fn
-
(data: any, options?: Abortable) => any
ストリーム内のすべてのチャンクをマッピングする関数です。 非同期かどうかは別として。
- options
-
ReadableOperatorOptions
返品
関数 fnで写像されたストリーム。
off(string | symbol, (args: any[]) => void)
function off(eventName: string | symbol, listener: (args: any[]) => void): Readable
パラメーター
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
返品
off<E>(E, (args: ReadableEventMap[E]) => void)
function off<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): Readable
パラメーター
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
返品
on(string | symbol, (args: any[]) => void)
function on(eventName: string | symbol, listener: (args: any[]) => void): Readable
パラメーター
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
返品
on<E>(E, (args: ReadableEventMap[E]) => void)
function on<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): Readable
パラメーター
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
返品
once(string | symbol, (args: any[]) => void)
function once(eventName: string | symbol, listener: (args: any[]) => void): Readable
パラメーター
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
返品
once<E>(E, (args: ReadableEventMap[E]) => void)
function once<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): Readable
パラメーター
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
返品
pause()
readable.pause()方式では、フローモードのストリームが'data'イベントの発生を停止し、フローモードから切り替わります。 利用可能になったデータは内部バッファに残ります。
const readable = getReadableStreamSomehow();
readable.on('data', (chunk) => {
console.log(`Received ${chunk.length} bytes of data.`);
readable.pause();
console.log('There will be no additional data for 1 second.');
setTimeout(() => {
console.log('Now data will start flowing again.');
readable.resume();
}, 1000);
});
readable.pause()メソッドは、'readable'イベントリスナーがいる場合は影響しません。
function pause(): Readable
返品
prependListener(string | symbol, (args: any[]) => void)
function prependListener(eventName: string | symbol, listener: (args: any[]) => void): Readable
パラメーター
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
返品
prependListener<E>(E, (args: ReadableEventMap[E]) => void)
function prependListener<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): Readable
パラメーター
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
返品
prependOnceListener(string | symbol, (args: any[]) => void)
function prependOnceListener(eventName: string | symbol, listener: (args: any[]) => void): Readable
パラメーター
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
返品
prependOnceListener<E>(E, (args: ReadableEventMap[E]) => void)
function prependOnceListener<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): Readable
パラメーター
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
返品
push(any, BufferEncoding)
function push(chunk: any, encoding?: BufferEncoding): boolean
パラメーター
- chunk
-
any
- encoding
-
BufferEncoding
返品
boolean
rawListeners(string | symbol)
function rawListeners(eventName: string | symbol): (args: any[]) => void[]
パラメーター
- eventName
-
string | symbol
返品
(args: any[]) => void[]
rawListeners<E>(E)
function rawListeners<E>(eventName: E): (args: ReadableEventMap[E]) => void[]
パラメーター
- eventName
-
E
返品
(args: ReadableEventMap[E]) => void[]
read(number)
readable.read()メソッドは内部バッファからデータを読み出し、返します。 読み取れるデータがない場合は null が返されます。 デフォルトでは、Bufferメソッドでエンコーディングが指定されていないか、ストリームがオブジェクトモードで動作している場合を除き、データはreadable.setEncoding()オブジェクトとして返されます。
オプションの size 引数は、読み取るべき特定のバイト数を指定します。
sizeバイトが読み取れない場合は、ストリームが終了nullが返されます。終了した場合、内部バッファに残っているすべてのデータが返されます。
size引数が指定されていない場合、内部バッファに含まれるすべてのデータが返されます。
sizeの引数は1 GiB以下でなければなりません。
readable.read()メソッドは、一時停止モードで動作しているReadableストリームでのみ呼び出されるべきです。 フローモードでは、内部バッファが完全に排水されるまで自動的に readable.read() 呼び出されます。
const readable = getReadableStreamSomehow();
// 'readable' may be triggered multiple times as data is buffered in
readable.on('readable', () => {
let chunk;
console.log('Stream is readable (new data received in buffer)');
// Use a loop to make sure we read all currently available data
while (null !== (chunk = readable.read())) {
console.log(`Read ${chunk.length} bytes of data...`);
}
});
// 'end' will be triggered once when there is no more data available
readable.on('end', () => {
console.log('Reached end of stream.');
});
readable.read()への各呼び出しは、データのチャンク、つまりnullを返します。 チャンクは連結されていません。 バッファ内のすべてのデータを消費するには while ループが必要です。 大きなファイルを読み込むと、バッファされたコンテンツをすべて消費した.read()nullを返すことがありますが、まだバッファされていないデータはまだ残っています。 この場合、バッファ内のデータ量が増えたときに新たな 'readable' イベントが発生します。 最後に、データがなくなったときに 'end' イベントが発生します。
したがって、 readableからファイルの全内容を読み取るには、複数の 'readable' イベントにわたるチャンクを収集する必要があります。
const chunks = [];
readable.on('readable', () => {
let chunk;
while (null !== (chunk = readable.read())) {
chunks.push(chunk);
}
});
readable.on('end', () => {
const content = chunks.join('');
});
オブジェクトモードのReadableストリームは、readable.read(size)引数の値に関わらず、size呼び出しから常に単一のアイテムを返します。
readable.read()メソッドがデータのチャンクを返す場合、'data'イベントも発生します。
イベントが発信された後に'end'を呼び出すとnullが戻ります。 ランタイムエラーは発生しません。
function read(size?: number): any
パラメーター
- size
-
number
読み取るべきデータ量を指定するオプションの引数があります。
返品
any
reduce<T>((previous: any, data: any, options?: Abortable) => T)
このメソッドはストリームの各チャンクで順番に fn を呼び出し、前の要素の計算結果をそのチャンクに渡します。 リ約の最終値に対する約束を返します。
初期値が提供されない場合は、ストリームの最初のチャンクが初期値として使用されます。
ストリームが空の場合、TypeErrorコードの性質を持つERR_INVALID_ARGSで約束が拒否されます。
リデューサー関数はストリームを要素ごとに反復するため、 並行 パラメータや並列処理は存在しません。 リダクションを同時に行うには、非同期関数を readable.map メソッドに抽出できます。
function reduce<T>(fn: (previous: any, data: any, options?: Abortable) => T): Promise<T>
パラメーター
- fn
-
(previous: any, data: any, options?: Abortable) => T
ストリーム内のすべてのチャンクを呼び出しるリデューサー関数です。 非同期かどうかは別として。
返品
Promise<T>
削減の最終的な価値の約束です。
reduce<T>((previous: T, data: any, options?: Abortable) => T, T, Abortable)
function reduce<T>(fn: (previous: T, data: any, options?: Abortable) => T, initial: T, options?: Abortable): Promise<T>
パラメーター
- fn
-
(previous: T, data: any, options?: Abortable) => T
- initial
-
T
- options
-
Abortable
返品
Promise<T>
removeAllListeners(string | symbol)
function removeAllListeners(eventName?: string | symbol): Readable
パラメーター
- eventName
-
string | symbol
返品
removeAllListeners<E>(E)
removeListener(string | symbol, (args: any[]) => void)
function removeListener(eventName: string | symbol, listener: (args: any[]) => void): Readable
パラメーター
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
返品
removeListener<E>(E, (args: ReadableEventMap[E]) => void)
function removeListener<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): Readable
パラメーター
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
返品
resume()
readable.resume()方式は、明示的に一時停止されたReadableストリームを'data'イベントの発生を再開させ、ストリームをフローングモードに切り替わります。
readable.resume()メソッドは、実際にデータを処理せずにストリームからのデータを完全に消費するために使用できます:
getReadableStreamSomehow()
.resume()
.on('end', () => {
console.log('Reached the end, but did not read anything.');
});
readable.resume()メソッドは、'readable'イベントリスナーがいる場合は影響しません。
function resume(): Readable
返品
setEncoding(BufferEncoding)
readable.setEncoding()メソッドは、Readableストリームから読み取るデータの文字エンコーディングを設定します。
デフォルトではエンコーディングは割り当てられず、ストリームデータは Buffer オブジェクトとして返されます。 エンコーディングを設定すると、ストリームデータは指定されたエンコーディングの文字列として返され、 Buffer オブジェクトとしては戻されません。 例えば、 readable.setEncoding('utf8') を呼び出すと、出力データがUTF-8データとして解釈され、文字列として渡されます。
readable.setEncoding('hex')を呼び出すと、データは16進文字列形式でエンコードされます。
Readableストリームは、単にBufferオブジェクトとしてストリームから引き出した場合に誤ってデコードされてしまうマルチバイト文字を適切に処理します。
const readable = getReadableStreamSomehow();
readable.setEncoding('utf8');
readable.on('data', (chunk) => {
assert.equal(typeof chunk, 'string');
console.log('Got %d characters of string data:', chunk.length);
});
function setEncoding(encoding: BufferEncoding): Readable
パラメーター
- encoding
-
BufferEncoding
使用するエンコード。
返品
some((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<ReadableOperatorOptions, "signal" | "concurrency">)
この方法はArray.prototype.someに似ており、待ち望まれた返り値(または任意の真値)がされるまでストリーム内の各チャンクでtrueを呼び出します。 チャンク返却値に対するawait呼び出しが真理になると、ストリームは破棄され、約束はtrueで満たされます。
チャンクに対する fn 呼び出しが真実値を返さなければ、約束は falseで満たされます。
function some(fn: (data: any, options?: Abortable) => boolean | Promise<boolean>, options?: Pick<ReadableOperatorOptions, "signal" | "concurrency">): Promise<boolean>
パラメーター
- fn
-
(data: any, options?: Abortable) => boolean | Promise<boolean>
ストリームの各チャンクで呼び出す関数です。 非同期かどうかは別として。
- options
-
Pick<ReadableOperatorOptions, "signal" | "concurrency">
返品
Promise<boolean>
fnが少なくとも1つのチャンクで真実true値(truthy)値を返すかどうかを評価する約束です。
take(number, Abortable)
このメソッドは最初の リミット チャンクを持つ新しいストリームを返します。
function take(limit: number, options?: Abortable): Readable
パラメーター
- limit
-
number
読み取れるものから取り出すチャンクの数。
- options
-
Abortable
返品
制限チャンクが取られたストリーム。
toArray(Abortable)
この方法により、ストリームの内容を簡単に取得できます。
この方法はストリーム全体をメモリに読み込むため、ストリームの利点を相殺します。 これは相互運用性と利便性を重視しており、ストリームを消費する主な方法ではありません。
function toArray(options?: Abortable): Promise<any[]>
パラメーター
- options
-
Abortable
返品
Promise<any[]>
ストリームの内容を含む配列を含む約束です。
toWeb(ReadableStream, ReadableToWebOptions)
ReadableStreamからウェブReadableを作成するためのユーティリティ手法。
static function toWeb(streamReadable: ReadableStream, options?: ReadableToWebOptions): ReadableStream<any>
パラメーター
- streamReadable
-
ReadableStream
- options
-
ReadableToWebOptions
返品
ReadableStream<any>
unpipe(WritableStream)
readable.unpipe()法はWritableパイプ法で接続されていた流を切り離します。
destinationが指定されていなければ、すべてのパイプは分離されます。
destinationが指定されていてもパイプが設定されていなければ、メソッドは何もしません。
import fs from 'node:fs';
const readable = getReadableStreamSomehow();
const writable = fs.createWriteStream('file.txt');
// All the data from readable goes into 'file.txt',
// but only for the first second.
readable.pipe(writable);
setTimeout(() => {
console.log('Stop writing to file.txt.');
readable.unpipe(writable);
console.log('Manually close the file stream.');
writable.end();
}, 1000);
function unpipe(destination?: WritableStream): Readable
パラメーター
- destination
-
WritableStream
オプションで特定のストリームをアンパイプする
返品
unshift(any, BufferEncoding)
chunkをnullとして渡すことはストリームの終了(EOF)を知らせ、readable.push(null)と同じ動作をします。その後はデータが書き込めなくなります。 EOF信号はバッファの端に配置され、バッファされたデータは依然としてフラッシュされます。
readable.unshift()メソッドはデータのチャンクを内部バッファに戻します。 これは、ストリームがソースから楽観的に取り出したデータを「アンコンソング」する必要があるコードによって消費されている特定の状況で有用です。これにより、そのデータを他の第三者に渡すことができます。
stream.unshift(chunk)イベントが発生した後に'end'メソッドを呼び出すことはできず、実行時エラーが発生します。
stream.unshift()をよく使う開発者は、代わりにTransformストリームの使用に切り替えることを検討すべきです。 詳細は API for stream implementers セクションをご覧ください。
// Pull off a header delimited by \n\n.
// Use unshift() if we get too much.
// Call the callback with (error, header, stream).
import { StringDecoder } from 'node:string_decoder';
function parseHeader(stream, callback) {
stream.on('error', callback);
stream.on('readable', onReadable);
const decoder = new StringDecoder('utf8');
let header = '';
function onReadable() {
let chunk;
while (null !== (chunk = stream.read())) {
const str = decoder.write(chunk);
if (str.includes('\n\n')) {
// Found the header boundary.
const split = str.split(/\n\n/);
header += split.shift();
const remaining = split.join('\n\n');
const buf = Buffer.from(remaining, 'utf8');
stream.removeListener('error', callback);
// Remove the 'readable' listener before unshifting.
stream.removeListener('readable', onReadable);
if (buf.length)
stream.unshift(buf);
// Now the body of the message can be read from the stream.
callback(null, header, stream);
return;
}
// Still reading the header.
header += str;
}
}
}
プッシュとは異なり、stream.unshift(chunk)はストリームの内部読み取り状態をリセットして読み取りプロセスを終了しません。
これにより、 readable.unshift() が読み取り中(すなわちカスタムストリーム上の _read 実装内から)呼び出されると予期せぬ結果が生じる可能性があります。
readable.unshift()呼び出しの後に即時プッシュを行うことで読み取り状態が適切にリセットされますが、読み取りの過程でreadable.unshift()を呼び出すのは避けるのが最善です。
function unshift(chunk: any, encoding?: BufferEncoding)
パラメーター
- chunk
-
any
データの塊を読み出しキューにアンシフトする。 オブジェクトモードで動作しないストリームの場合、 chunk {string}、{Buffer}、{TypedArray}、{DataView}、または null でなければなりません。 オブジェクトモードストリームの場合、 chunk は任意のJavaScript値であっても構いません。
- encoding
-
BufferEncoding
文字列チャンクのエンコーディング。 有効な Buffer エンコーディングでなければなりません。例えば 'utf8' や 'ascii'などです。
wrap(ReadableStream)
Node.js 0.10以前は、ストリームズは現在の定義通りの全 node:stream モジュールAPIを実装していませんでした。 (詳細は Compatibility を参照してください。)
'data'イベントを発生し、アドバイザリーのみの一時停止メソッドを持つ古い Node.js ライブラリを使用する場合、readable.wrap()メソッドを使って古いストリームをデータソースとしてReadableストリームを作成できます。
readable.wrap()を使う必要はほとんどありませんが、古い Node.js アプリケーションやライブラリとのやり取りを利便にするためにこの方法が提供されています。
import { OldReader } from './old-api-module.js';
import { Readable } from 'node:stream';
const oreader = new OldReader();
const myReader = new Readable().wrap(oreader);
myReader.on('readable', () => {
myReader.read(); // etc.
});
function wrap(stream: ReadableStream): Readable
パラメーター
- stream
-
ReadableStream
「旧様式」の読みやすいストリーム
返品
[asyncIterator]()
function [asyncIterator](): AsyncIterator<any, undefined, any>
返品
AsyncIterator<any, undefined, any>
AsyncIterator ストリームを完全に消費する。
[toAsyncStreamable]()
--experimental-stream-iterフラグが有効になると、ReadableストリームはStream.toAsyncStreamableプロトコルを実装し、stream/iterAPIによる効率的な利用を可能にします。
これにより、ストリームの内部バッファを Uint8Array[] バッチに分散し、標準 Symbol.asyncIterator パスのチャンクごとのPromiseオーバーヘッドを償却するバッチ非同期イテレーターが提供されます。 バイトモードストリームの場合、チャンクは Buffer インスタンス( Uint8Array サブクラス)として直接生成されます。
オブジェクトモードやエンコードされたストリームでは、バッチ処理前に各チャンクが Uint8Array に正規化されます。
返されたイテレータは検証済みソースとしてタグ付けされているため、 from() 追加の正規化なしで通過します。
import { Readable } from 'node:stream';
import { text, from } from 'node:stream/iter';
const readable = new Readable({
read() { this.push('hello'); this.push(null); },
});
// Readable is automatically consumed via toAsyncStreamable
console.log(await text(from(readable))); // 'hello'
--experimental-stream-iterフラグがなければ、このメソッドを呼び出すとERR_STREAM_ITER_MISSING_FLAGが投げ出されます。
function [toAsyncStreamable](): ByteReadableStream
返品
ByteReadableStream
継承済みメソッドの詳細
eventNames()
エミッターがリスナーを登録したイベントを一覧表示する配列を返します。
import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});
const sym = Symbol('symbol');
myEE.on(sym, () => {});
console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
function eventNames(): (string | symbol)[]
返品
(string | symbol)[]
継承者 Stream.eventNames(ストリーム・イベントネームズ)
getMaxListeners()
EventEmitter の現在の最大リスナー値を返します。この値は、emitter.setMaxListeners(n) によって設定されるか、既定で events.defaultMaxListenersに設定されます。
function getMaxListeners(): number
返品
number
継承者 Stream.getMaxListeners
pipe<T>(T, PipeOptions)
function pipe<T>(destination: T, options?: PipeOptions): T
パラメーター
- destination
-
T
- options
-
PipeOptions
返品
T
継承者 Stream.pipe
setMaxListeners(number)
既定では、EventEmitters は、特定のイベントに対して 10 を超えるリスナーが追加された場合に警告を出力します。 これは、メモリ リークの検出に役立つ便利な既定値です。
emitter.setMaxListeners() メソッドを使用すると、この特定の EventEmitter インスタンスの制限を変更できます。 この値を Infinity (または 0) に設定すると、リスナーの数に制限はありません。
呼び出しをチェーンできるように、EventEmitterへの参照を返します。
function setMaxListeners(n: number): Readable
パラメーター
- n
-
number
返品
継承者 Stream.setMaxListeners
[captureRejectionSymbol](Error, string | symbol, any[])
Symbol.for('nodejs.rejection')メソッドは、イベントを発生させる際に約束拒否が発生し、エミッターでcaptureRejectionsが有効化された場合に呼び出されます。
events.captureRejectionSymbolの代わりに Symbol.for('nodejs.rejection') を使うことも可能です。
import { EventEmitter, captureRejectionSymbol } from 'node:events';
class MyClass extends EventEmitter {
constructor() {
super({ captureRejections: true });
}
[captureRejectionSymbol](err, event, ...args) {
console.log('rejection happened for', event, 'with', err, ...args);
this.destroy(err);
}
destroy(err) {
// Tear the resource down here.
}
}
function [captureRejectionSymbol](error: Error, event: string | symbol, args: any[])
パラメーター
- error
-
Error
- event
-
string | symbol
- args
-
any[]
継承者 Stream.__@captureRejectionSymbol@180