Readable class
- Rozszerzenie
-
Stream
Konstruktory
| Readable(Readable |
Właściwości
| closed | Po |
| destroyed | To |
| errored | Zwraca błąd, jeśli strumień został zniszczony błędem. |
| readable | Jest |
| readable |
Zwraca, czy strumień został zniszczony lub wprowadzony błąd przed emisją |
| readable |
Zwraca się, czy |
| readable |
Getter dla własności |
| readable |
Staje się |
| readable |
Ta własność odzwierciedla obecny stan strumienia |
| readable |
Zwraca wartość przekazanej podczas |
| readable |
Ta właściwość zawiera liczbę bajtów (lub obiektów) w kolejce gotowych do odczytu. Wartość ta dostarcza danych introspekcyjnych dotyczących statusu . |
| readable |
Getter dla własności |
Metody
| add |
|
| add |
|
| compose(Writable |
Ta metoda pozwala również na dostosowanie strumienia Aby uzyskać więcej informacji, zobacz |
| destroy(Error) | Zniszczyć strumień. Opcjonalnie wyemituj Po Implementatorzy nie powinni nadpisywać tej metody, lecz zamiast tego implementować |
| drop(number, Abortable) | Ta metoda zwraca nowy strumień z pierwszymi blokami limitu odrzucone od początku. |
| emit(string | symbol, any[]) | |
| emit<E>(E, Readable |
|
| every((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<Readable |
Ta metoda jest podobna do |
| filter((data: any, options?: Abortable) => boolean | Promise<boolean>, Readable |
Ta metoda pozwala na filtrowanie strumienia. Dla każdego fragmentu strumienia wywołana zostanie funkcja fn i jeśli zwróci wartość prawdziwą, fragment zostanie przekazany do strumienia wyniku.
Jeśli funkcja fn zwraca obietnicę – ta obietnica będzie ed |
| find((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<Readable |
|
| find<T>((data: any, options?: Abortable) => data, Pick<Readable |
Ta metoda jest podobna do |
| flat |
Ta metoda zwraca nowy strumień poprzez zastosowanie danego callbacku do każdego fragmentu strumienia, a następnie spłaszczenie wyniku. Możliwe jest zwrócenie strumienia lub innego iterowalnego lub asynchronicznego iterowalnego z fn i strumienie wynikowe zostaną połączone (spłaszczone) z zwróconym strumieniem. |
| for |
Ta metoda pozwala na iterację strumienia. Dla każdego chunku w strumieniu wywołana zostanie funkcja fn .
Jeśli funkcja fn zwraca obietnicę – ta obietnica będzie ed Ta metoda różni się od Ta metoda różni się od odsłuchu |
| from(Iterable<any> | Async |
Metoda pomocnicza do tworzenia czytelnych strumieni z iteratorów. |
| from |
Metoda pomocnicza do tworzenia z |
| is |
Zwraca się, niezależnie od tego, czy strumień został odczytany, czy anulowany. |
| is |
Metoda
|
| iterator(Readable |
Iterator utworzony tą metodą daje użytkownikom możliwość anulowania zniszczenia strumienia, jeśli pętla |
| listener |
|
| listener |
|
| listeners(string | symbol) | |
| listeners<E>(E) | |
| map((data: any, options?: Abortable) => any, Readable |
Ta metoda pozwala na mapowanie strumienia. Funkcja fn będzie wywoływana dla każdego chunku w strumieniu.
Jeśli funkcja fn zwraca obietnicę – ta obietnica zostanie ed |
| 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() | Metoda ta
Metoda nie |
| prepend |
|
| prepend |
|
| prepend |
|
| prepend |
|
| push(any, Buffer |
|
| raw |
|
| raw |
|
| read(number) | Metoda Argument opcjonalny Jeśli Argument Metoda powinna
Każde wywołanie zwraca Dlatego aby odczytać całą zawartość pliku z ,
Strumień Jeśli Wezwanie do odczytu po |
| reduce<T>((previous: any, data: any, options?: Abortable) => T) | Ta metoda wywołuje fn na każdym fragmencie strumienia w kolejności, przekazując mu wynik z obliczeń na poprzednim elemencie. Zwraca obietnicę końcowej wartości redukcji. Jeśli nie podano wartości początkowej , jako wartość początkową używa się pierwszego fragmentu strumienia.
Jeśli strumień jest pusty, obietnica jest odrzucana z Funkcja reduktora iteruje strumień element po elemencie, co oznacza, że nie ma parametru współbieżności ani równoległości. Aby jednocześnie wykonać redukcję, możesz wyodrębnić funkcję asynchroniczną do |
| reduce<T>((previous: T, data: any, options?: Abortable) => T, T, Abortable) | |
| remove |
|
| remove |
|
| remove |
|
| remove |
|
| resume() | Metoda ta Metoda ta
Metoda nie |
| set |
Metoda ta Domyślnie nie przypisuje się kodowania, a dane strumieniowe są zwracane jako Strumień
|
| some((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<Readable |
Ta metoda jest podobna do |
| take(number, Abortable) | Ta metoda zwraca nowy strumień z pierwszymi blokami limitu . |
| to |
Ta metoda pozwala łatwo uzyskać zawartość strumienia. Ponieważ ta metoda odczytuje cały strumień do pamięci, niweluje korzyści płynące ze strumieni. Jest przeznaczony dla interoperacyjności i wygody, a nie jako główny sposób konsumowania strumieni. |
| to |
Metoda użytkowa do tworzenia sieci |
| unpipe(Writable |
Metoda ta Jeśli nie Jeśli jest
|
| unshift(any, Buffer |
Przechodząc Metoda ta Metoda nie Programiści często korzystający powinni
W przeciwieństwie do push, nie zakończy |
| wrap(Readable |
Przed Node.js 0.10 strumienie nie implementowały całego Korzystając ze starszej biblioteki Node.js, która generuje Rzadko będzie konieczna do użycia
|
| [async |
Metody dziedziczone
| event |
Zwraca tablicę z listą zdarzeń, dla których emiter zarejestrował odbiorniki.
|
| get |
Zwraca bieżącą wartość maksymalnego odbiornika dla |
| pipe<T>(T, Pipe |
|
| set |
Domyślnie Zwraca odwołanie do |
| [capture |
Metoda ta
|
Szczegóły konstruktora
Readable(ReadableOptions<Readable>)
Szczegóły właściwości
closed
Po true'close' emisji jest już wyemitowany.
closed: boolean
Wartość właściwości
boolean
destroyed
To true po readable.destroy() tym, co zostało wezwane.
destroyed: boolean
Wartość właściwości
boolean
errored
Zwraca błąd, jeśli strumień został zniszczony błędem.
errored: null | Error
Wartość właściwości
null | Error
readable
Jest true to, czy bezpiecznie jest wywołać odczyt, co oznacza, że strumień nie został zniszczony ani emitowany 'error' lub 'end'.
readable: boolean
Wartość właściwości
boolean
readableAborted
Zwraca, czy strumień został zniszczony lub wprowadzony błąd przed emisją 'end'.
readableAborted: boolean
Wartość właściwości
boolean
readableDidRead
Zwraca się, czy 'data' został wyemitowany.
readableDidRead: boolean
Wartość właściwości
boolean
readableEncoding
Getter dla własności encoding danego Readable strumienia. Właściwość tę encoding można ustawić za pomocą metody setEncoded .
readableEncoding: null | BufferEncoding
Wartość właściwości
null | BufferEncoding
readableEnded
Staje się true , gdy 'end' wydawane jest zdarzenie.
readableEnded: boolean
Wartość właściwości
boolean
readableFlowing
Ta własność odzwierciedla obecny stan strumienia Readable opisany w sekcji Trzy stany .
readableFlowing: null | boolean
Wartość właściwości
null | boolean
readableHighWaterMark
Zwraca wartość przekazanej podczas highWaterMark tworzenia tego Readable.
readableHighWaterMark: number
Wartość właściwości
number
readableLength
Ta właściwość zawiera liczbę bajtów (lub obiektów) w kolejce gotowych do odczytu. Wartość ta dostarcza danych introspekcyjnych dotyczących statusu .highWaterMark
readableLength: number
Wartość właściwości
number
readableObjectMode
Getter dla własności objectMode danego Readable strumienia.
readableObjectMode: boolean
Wartość właściwości
boolean
Szczegóły metody
addListener(string | symbol, (args: any[]) => void)
function addListener(eventName: string | symbol, listener: (args: any[]) => void): Readable
Parametry
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Zwraca
addListener<E>(E, (args: ReadableEventMap[E]) => void)
function addListener<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): Readable
Parametry
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
Zwraca
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) jest równoważne z stream.compose(readable, s).
Ta metoda pozwala również na dostosowanie strumienia AbortSignal , który zniszczy złożony strumień po przerwaniu.
Aby uzyskać więcej informacji, zobacz stream.compose(...streams).
function compose(stream: WritableStream | WritableStream<any> | TransformStream<any, any> | (source: any) => void, options?: Abortable): Duplex
Parametry
- stream
-
WritableStream | WritableStream<any> | TransformStream<any, any> | (source: any) => void
- options
-
Abortable
Zwraca
Duplex
strumień złożony ze strumienia stream.
destroy(Error)
Zniszczyć strumień. Opcjonalnie wyemituj 'error' zdarzenie, a następnie wyemituje zdarzenie 'close' (chyba że emitClose jest ustawione na false). Po tym wywołaniu czytelny strumień zwolni wszelkie wewnętrzne zasoby, a kolejne wezwania push() zostaną zignorowane.
Po destroy() wywołaniu wszelkie kolejne wywołania będą no-op i nie pojawią się żadne kolejne błędy poza , _destroy() które mogą być emitowane jako .'error'
Implementatorzy nie powinni nadpisywać tej metody, lecz zamiast tego implementować readable._destroy().
function destroy(error?: Error): Readable
Parametry
- error
-
Error
Błąd, który zostanie przekazany jako ładunek w zdarzeniu 'error'
Zwraca
drop(number, Abortable)
Ta metoda zwraca nowy strumień z pierwszymi blokami limitu odrzucone od początku.
function drop(limit: number, options?: Abortable): Readable
Parametry
- limit
-
number
Liczba fragmentów, które trzeba usunąć z czytelnego.
- options
-
Abortable
Zwraca
strumień z limitem bloków odrzucanych od początku.
emit(string | symbol, any[])
function emit(eventName: string | symbol, args: any[]): boolean
Parametry
- eventName
-
string | symbol
- args
-
any[]
Zwraca
boolean
emit<E>(E, ReadableEventMap[E])
function emit<E>(eventName: E, args: ReadableEventMap[E]): boolean
Parametry
- eventName
-
E
- args
-
ReadableEventMap[E]
Zwraca
boolean
every((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<ReadableOperatorOptions, "signal" | "concurrency">)
Ta metoda jest podobna do Array.prototype.every i wywołuje fn na każdym chunku w strumieniu, aby sprawdzić, czy wszystkie oczekiwane wartości zwrotne są prawdziwe dla fn. Gdy wywołanie fn na wartości zwrotu bloku awaitjest fałszywe, strumień zostaje zniszczony, a obietnica spełniona przez false.
Jeśli wszystkie wywołania fn na blokach zwracają wartość prawdziwą, obietnica jest spełniona przez true.
function every(fn: (data: any, options?: Abortable) => boolean | Promise<boolean>, options?: Pick<ReadableOperatorOptions, "signal" | "concurrency">): Promise<boolean>
Parametry
- fn
-
(data: any, options?: Abortable) => boolean | Promise<boolean>
funkcja wywołująca każdy fragment strumienia. Niezależnie od tego, czy to asynchronicznie, czy nie.
- options
-
Pick<ReadableOperatorOptions, "signal" | "concurrency">
Zwraca
Promise<boolean>
Obietnica oceniająca na , true czy fn zwraca prawdziwą wartość dla każdego z bloków.
filter((data: any, options?: Abortable) => boolean | Promise<boolean>, ReadableOperatorOptions)
Ta metoda pozwala na filtrowanie strumienia. Dla każdego fragmentu strumienia wywołana zostanie funkcja fn i jeśli zwróci wartość prawdziwą, fragment zostanie przekazany do strumienia wyniku.
Jeśli funkcja fn zwraca obietnicę – ta obietnica będzie ed await.
function filter(fn: (data: any, options?: Abortable) => boolean | Promise<boolean>, options?: ReadableOperatorOptions): Readable
Parametry
- fn
-
(data: any, options?: Abortable) => boolean | Promise<boolean>
funkcja filtrująca fragmenty strumienia. Niezależnie od tego, czy to asynchronicznie, czy nie.
- options
-
ReadableOperatorOptions
Zwraca
strumień filtrowany predykatem 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>
Parametry
- fn
-
(data: any, options?: Abortable) => boolean | Promise<boolean>
- options
-
Pick<ReadableOperatorOptions, "signal" | "concurrency">
Zwraca
Promise<any>
find<T>((data: any, options?: Abortable) => data, Pick<ReadableOperatorOptions, "signal" | "concurrency">)
Ta metoda jest podobna do Array.prototype.find i wywołuje fn na każdym chunku w strumieniu, aby znaleźć chunk z prawdziwą wartością fn. Gdy oczekiwana wartość zwrotu wywołania fn jest prawdziwa, strumień zostaje zniszczony, a obietnica spełniona z wartością, dla której fn zwrócił wartość prawdziwą.
Jeśli wszystkie wywołania fn na blokach zwracają fałszywą wartość, obietnica jest spełniona przez undefined.
function find<T>(fn: (data: any, options?: Abortable) => data, options?: Pick<ReadableOperatorOptions, "signal" | "concurrency">): Promise<undefined | T>
Parametry
- fn
-
(data: any, options?: Abortable) => data
funkcja wywołująca każdy fragment strumienia. Niezależnie od tego, czy to asynchronicznie, czy nie.
- options
-
Pick<ReadableOperatorOptions, "signal" | "concurrency">
Zwraca
Promise<undefined | T>
Obietnica wyliczająca się do pierwszego fragmentu, dla którego fn ocenił wartość prawdziwą, lub undefined jeśli nie znaleziono żadnego elementu.
flatMap((data: any, options?: Abortable) => any, Pick<ReadableOperatorOptions, "signal" | "concurrency">)
Ta metoda zwraca nowy strumień poprzez zastosowanie danego callbacku do każdego fragmentu strumienia, a następnie spłaszczenie wyniku.
Możliwe jest zwrócenie strumienia lub innego iterowalnego lub asynchronicznego iterowalnego z fn i strumienie wynikowe zostaną połączone (spłaszczone) z zwróconym strumieniem.
function flatMap(fn: (data: any, options?: Abortable) => any, options?: Pick<ReadableOperatorOptions, "signal" | "concurrency">): Readable
Parametry
- fn
-
(data: any, options?: Abortable) => any
funkcja mapująca na każdy fragment strumienia. Może być asynchroniczna. Może to strumień lub generator.
- options
-
Pick<ReadableOperatorOptions, "signal" | "concurrency">
Zwraca
strumień płaski odwzorowany funkcją fn.
forEach((data: any, options?: Abortable) => void | Promise<void>, Pick<ReadableOperatorOptions, "signal" | "concurrency">)
Ta metoda pozwala na iterację strumienia. Dla każdego chunku w strumieniu wywołana zostanie funkcja fn .
Jeśli funkcja fn zwraca obietnicę – ta obietnica będzie ed await.
Ta metoda różni się od for await...of pętli tym, że opcjonalnie może przetwarzać fragmenty równocześnie.
Ponadto iterację forEach można zatrzymać tylko po przejściu opcji signal i przerwaniu powiązanego AbortControllera, podczas gdy for await...of można ją zatrzymać za break pomocą lub return.
W obu przypadkach strumień zostanie zniszczony.
Ta metoda różni się od odsłuchu 'data' zdarzenia tym, że wykorzystuje zdarzenie readable w maszynie podstawowej i może ograniczyć liczbę jednoczesnych wywołań fn .
function forEach(fn: (data: any, options?: Abortable) => void | Promise<void>, options?: Pick<ReadableOperatorOptions, "signal" | "concurrency">): Promise<void>
Parametry
- fn
-
(data: any, options?: Abortable) => void | Promise<void>
funkcja wywołująca każdy fragment strumienia. Niezależnie od tego, czy to asynchronicznie, czy nie.
- options
-
Pick<ReadableOperatorOptions, "signal" | "concurrency">
Zwraca
Promise<void>
Obietnica na zakończenie streamu.
from(Iterable<any> | AsyncIterable<any>, ReadableOptions<Readable>)
Metoda pomocnicza do tworzenia czytelnych strumieni z iteratorów.
static function from(iterable: Iterable<any> | AsyncIterable<any>, options?: ReadableOptions<Readable>): Readable
Parametry
- iterable
-
Iterable<any> | AsyncIterable<any>
Obiekt implementujący Symbol.asyncIteratorSymbol.iterator lub iterowalny protokół. Generuje zdarzenie "błąd", jeśli zostanie przekazana wartość nulla.
- options
-
ReadableOptions<Readable>
Opcje udostępnione dla new stream.Readable([options]). Domyślnie ustawimy Readable.from()options.objectMode na , truechyba że zostanie to wyraźnie wyłączone przez ustawienie options.objectMode na false.
Zwraca
fromWeb(ReadableStream<any>, Pick<ReadableOptions<Readable>, "encoding" | "highWaterMark" | "objectMode" | "signal">)
Metoda pomocnicza do tworzenia z Readable sieci ReadableStream.
static function fromWeb(readableStream: ReadableStream<any>, options?: Pick<ReadableOptions<Readable>, "encoding" | "highWaterMark" | "objectMode" | "signal">): Readable
Parametry
- readableStream
-
ReadableStream<any>
- options
-
Pick<ReadableOptions<Readable>, "encoding" | "highWaterMark" | "objectMode" | "signal">
Zwraca
isDisturbed(ReadableStream<any> | ReadableStream)
Zwraca się, niezależnie od tego, czy strumień został odczytany, czy anulowany.
static function isDisturbed(stream: ReadableStream<any> | ReadableStream): boolean
Parametry
- stream
-
ReadableStream<any> | ReadableStream
Zwraca
boolean
isPaused()
Metoda readable.isPaused() zwraca aktualny stan pracy .Readable
Jest to wykorzystywane głównie przez mechanizm, który leży u podstaw tej metody readable.pipe() .
W większości typowych przypadków nie ma powodu, by stosować tę metodę bezpośrednio.
const readable = new stream.Readable();
readable.isPaused(); // === false
readable.pause();
readable.isPaused(); // === true
readable.resume();
readable.isPaused(); // === false
function isPaused(): boolean
Zwraca
boolean
iterator(ReadableIteratorOptions)
Iterator utworzony tą metodą daje użytkownikom możliwość anulowania zniszczenia strumienia, jeśli pętla for await...of zostanie zakończona przez return, break, lub throw, lub jeśli iterator zniszczy strumień w przypadku błędu podczas iteracji.
function iterator(options?: ReadableIteratorOptions): AsyncIterator<any, undefined, any>
Parametry
- options
-
ReadableIteratorOptions
Zwraca
AsyncIterator<any, undefined, any>
listenerCount(string | symbol, (args: any[]) => void)
function listenerCount(eventName: string | symbol, listener?: (args: any[]) => void): number
Parametry
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Zwraca
number
listenerCount<E>(E, (args: ReadableEventMap[E]) => void)
function listenerCount<E>(eventName: E, listener?: (args: ReadableEventMap[E]) => void): number
Parametry
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
Zwraca
number
listeners(string | symbol)
function listeners(eventName: string | symbol): (args: any[]) => void[]
Parametry
- eventName
-
string | symbol
Zwraca
(args: any[]) => void[]
listeners<E>(E)
function listeners<E>(eventName: E): (args: ReadableEventMap[E]) => void[]
Parametry
- eventName
-
E
Zwraca
(args: ReadableEventMap[E]) => void[]
map((data: any, options?: Abortable) => any, ReadableOperatorOptions)
Ta metoda pozwala na mapowanie strumienia. Funkcja fn będzie wywoływana dla każdego chunku w strumieniu.
Jeśli funkcja fn zwraca obietnicę – ta obietnica zostanie ed awaitprzed przekazaniem do strumienia wyników.
function map(fn: (data: any, options?: Abortable) => any, options?: ReadableOperatorOptions): Readable
Parametry
- fn
-
(data: any, options?: Abortable) => any
funkcja mapująca na każdy fragment strumienia. Niezależnie od tego, czy to asynchronicznie, czy nie.
- options
-
ReadableOperatorOptions
Zwraca
strumień mapowany funkcją fn.
off(string | symbol, (args: any[]) => void)
function off(eventName: string | symbol, listener: (args: any[]) => void): Readable
Parametry
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Zwraca
off<E>(E, (args: ReadableEventMap[E]) => void)
function off<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): Readable
Parametry
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
Zwraca
on(string | symbol, (args: any[]) => void)
function on(eventName: string | symbol, listener: (args: any[]) => void): Readable
Parametry
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Zwraca
on<E>(E, (args: ReadableEventMap[E]) => void)
function on<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): Readable
Parametry
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
Zwraca
once(string | symbol, (args: any[]) => void)
function once(eventName: string | symbol, listener: (args: any[]) => void): Readable
Parametry
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Zwraca
once<E>(E, (args: ReadableEventMap[E]) => void)
function once<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): Readable
Parametry
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
Zwraca
pause()
Metoda ta readable.pause() powoduje, że strumień w trybie przepływu przestaje emitować 'data' zdarzenia, przełączając się z trybu przepływu. Wszelkie dostępne dane pozostaną w buforze wewnętrznym.
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);
});
Metoda nie readable.pause() ma efektu, jeśli istnieje 'readable' słuchacz zdarzeń.
function pause(): Readable
Zwraca
prependListener(string | symbol, (args: any[]) => void)
function prependListener(eventName: string | symbol, listener: (args: any[]) => void): Readable
Parametry
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Zwraca
prependListener<E>(E, (args: ReadableEventMap[E]) => void)
function prependListener<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): Readable
Parametry
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
Zwraca
prependOnceListener(string | symbol, (args: any[]) => void)
function prependOnceListener(eventName: string | symbol, listener: (args: any[]) => void): Readable
Parametry
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Zwraca
prependOnceListener<E>(E, (args: ReadableEventMap[E]) => void)
function prependOnceListener<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): Readable
Parametry
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
Zwraca
push(any, BufferEncoding)
function push(chunk: any, encoding?: BufferEncoding): boolean
Parametry
- chunk
-
any
- encoding
-
BufferEncoding
Zwraca
boolean
rawListeners(string | symbol)
function rawListeners(eventName: string | symbol): (args: any[]) => void[]
Parametry
- eventName
-
string | symbol
Zwraca
(args: any[]) => void[]
rawListeners<E>(E)
function rawListeners<E>(eventName: E): (args: ReadableEventMap[E]) => void[]
Parametry
- eventName
-
E
Zwraca
(args: ReadableEventMap[E]) => void[]
read(number)
Metoda readable.read() odczytuje dane z wewnętrznego bufora i zwraca je. Jeśli nie ma dostępnych danych do odczytu, null zwraca się. Domyślnie dane są zwracane jako obiekt, Buffer chyba że kodowanie zostało określone metodą readable.setEncoding() lub strumień działa w trybie obiektowym.
Argument opcjonalny size określa określoną liczbę bajtów do odczytu. Jeśli size bajty nie są dostępne do odczytu, zostaną zwrócone, nullchyba że strumień się zakończył, wtedy wszystkie dane pozostały w buforze wewnętrznym zostaną zwrócone.
Jeśli size argument nie zostanie określony, wszystkie dane zawarte w wewnętrznym buforze zostaną zwrócone.
Argument size musi być mniejszy lub równy 1 GiB.
Metoda powinna readable.read() być wywoływana tylko w strumieniach Readable działających w trybie pauzy. W trybie przepływu jest wywoływany automatycznie, readable.read() aż wewnętrzny bufor zostanie całkowicie opróżniony.
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.');
});
Każde wywołanie zwraca readable.read() fragment danych, czyli null. Fragmenty nie są połączone. Pętla jest konieczna, aby zużyć wszystkie dane obecnie znajdujące while się w buforze. Podczas odczytu dużego pliku .read() może się zwrócić null, po zużyciu całej dotychczas zbuforowanej zawartości, ale wciąż jest więcej danych, które nie są jeszcze buforowane. W takim przypadku nowe 'readable' zdarzenie zostanie wygenerowane, gdy w buforze pojawi się więcej danych. Na koniec 'end' wydarzenie zostanie wyemitowane, gdy nie będzie już więcej danych.
Dlatego aby odczytać całą zawartość pliku z , readablekonieczne jest zebranie fragmentów przez wiele 'readable' zdarzeń:
const chunks = [];
readable.on('readable', () => {
let chunk;
while (null !== (chunk = readable.read())) {
chunks.push(chunk);
}
});
readable.on('end', () => {
const content = chunks.join('');
});
Strumień Readable w trybie obiektowym zawsze zwraca pojedynczy element z wywołania do readable.read(size), niezależnie od wartości argumentu size .
Jeśli readable.read() metoda zwraca fragment danych, zostanie również wygenerowane zdarzenie 'data' .
Wezwanie do odczytu po 'end' emisji zdarzenia wróci null. Nie pojawi się żaden błąd w czasie działania.
function read(size?: number): any
Parametry
- size
-
number
Opcjonalny argument określający, ile danych należy odczytać.
Zwraca
any
reduce<T>((previous: any, data: any, options?: Abortable) => T)
Ta metoda wywołuje fn na każdym fragmencie strumienia w kolejności, przekazując mu wynik z obliczeń na poprzednim elemencie. Zwraca obietnicę końcowej wartości redukcji.
Jeśli nie podano wartości początkowej , jako wartość początkową używa się pierwszego fragmentu strumienia.
Jeśli strumień jest pusty, obietnica jest odrzucana z TypeError właściwością z ERR_INVALID_ARGS kodem.
Funkcja reduktora iteruje strumień element po elemencie, co oznacza, że nie ma parametru współbieżności ani równoległości. Aby jednocześnie wykonać redukcję, możesz wyodrębnić funkcję asynchroniczną do readable.map metody.
function reduce<T>(fn: (previous: any, data: any, options?: Abortable) => T): Promise<T>
Parametry
- fn
-
(previous: any, data: any, options?: Abortable) => T
funkcja redukująca do wywoływania każdego chunku w strumieniu. Niezależnie od tego, czy to asynchronicznie, czy nie.
Zwraca
Promise<T>
obietnica ostatecznej wartości redukcji.
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>
Parametry
- fn
-
(previous: T, data: any, options?: Abortable) => T
- initial
-
T
- options
-
Abortable
Zwraca
Promise<T>
removeAllListeners(string | symbol)
function removeAllListeners(eventName?: string | symbol): Readable
Parametry
- eventName
-
string | symbol
Zwraca
removeAllListeners<E>(E)
removeListener(string | symbol, (args: any[]) => void)
function removeListener(eventName: string | symbol, listener: (args: any[]) => void): Readable
Parametry
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Zwraca
removeListener<E>(E, (args: ReadableEventMap[E]) => void)
function removeListener<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): Readable
Parametry
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
Zwraca
resume()
Metoda ta readable.resume() powoduje, że wyraźnie wstrzymany Readable strumień wznawia emisję 'data' zdarzeń, przełączając strumień w tryb przepływu.
Metoda ta readable.resume() może być użyta do pełnego wykorzystania danych ze strumienia bez faktycznego przetwarzania tych danych:
getReadableStreamSomehow()
.resume()
.on('end', () => {
console.log('Reached the end, but did not read anything.');
});
Metoda nie readable.resume() ma efektu, jeśli istnieje 'readable' słuchacz zdarzeń.
function resume(): Readable
Zwraca
setEncoding(BufferEncoding)
Metoda ta readable.setEncoding() ustawia kodowanie znaków dla danych odczytanych Readable ze strumienia.
Domyślnie nie przypisuje się kodowania, a dane strumieniowe są zwracane jako Buffer obiekty. Ustawienie kodowania powoduje, że dane strumieniowe są zwracane jako ciągi znaków określonych kodów, a nie jako Buffer obiekty. Na przykład wywołanie readable.setEncoding('utf8') powoduje, że dane wyjściowe są interpretowane jako dane UTF-8 i przekazywane jako ciągi znaków. Wywołanie readable.setEncoding('hex') spowoduje zakodowanie danych w formacie szesnastkowego ciągu tekstowego.
Strumień Readable będzie prawidłowo obsługiwał znaki wielobajtowe dostarczane przez strumień, które w przeciwnym razie zostałyby niepoprawnie zdekodowane, gdyby zostały po prostu pobrane ze strumienia jako Buffer obiekty.
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
Parametry
- encoding
-
BufferEncoding
Kodowanie do użycia.
Zwraca
some((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<ReadableOperatorOptions, "signal" | "concurrency">)
Ta metoda jest podobna do Array.prototype.some i wywołuje fn na każdym bloku strumienia, aż oczekiwana wartość zwrotu jest ( true lub dowolna wartość prawdziwa). Gdy wywołanie fn na wartości zwrotu chunk awaited jest prawdziwe, strumień zostaje zniszczony, a obietnica spełniona z .true
Jeśli żadne z wywołań fn na blokach nie zwraca wartości prawdziwej, obietnica zostaje spełniona przez .false
function some(fn: (data: any, options?: Abortable) => boolean | Promise<boolean>, options?: Pick<ReadableOperatorOptions, "signal" | "concurrency">): Promise<boolean>
Parametry
- fn
-
(data: any, options?: Abortable) => boolean | Promise<boolean>
funkcja wywołująca każdy fragment strumienia. Niezależnie od tego, czy to asynchronicznie, czy nie.
- options
-
Pick<ReadableOperatorOptions, "signal" | "concurrency">
Zwraca
Promise<boolean>
Obietnica oceniająca na , true jeśli fn zwraca wartość prawdziwą przynajmniej dla jednego z chunków.
take(number, Abortable)
Ta metoda zwraca nowy strumień z pierwszymi blokami limitu .
function take(limit: number, options?: Abortable): Readable
Parametry
- limit
-
number
Liczba fragmentów do pobrania z czytelnego.
- options
-
Abortable
Zwraca
stream z limitem chunków.
toArray(Abortable)
Ta metoda pozwala łatwo uzyskać zawartość strumienia.
Ponieważ ta metoda odczytuje cały strumień do pamięci, niweluje korzyści płynące ze strumieni. Jest przeznaczony dla interoperacyjności i wygody, a nie jako główny sposób konsumowania strumieni.
function toArray(options?: Abortable): Promise<any[]>
Parametry
- options
-
Abortable
Zwraca
Promise<any[]>
obietnica zawierająca tablicę z zawartością strumienia.
toWeb(ReadableStream, ReadableToWebOptions)
Metoda użytkowa do tworzenia sieci ReadableStream z .Readable
static function toWeb(streamReadable: ReadableStream, options?: ReadableToWebOptions): ReadableStream<any>
Parametry
- streamReadable
-
ReadableStream
- options
-
ReadableToWebOptions
Zwraca
ReadableStream<any>
unpipe(WritableStream)
Metoda ta readable.unpipe() odłącza strumień wcześniej przymocowany Writable metodą rur.
Jeśli nie destination jest to określone, wszystkie rury są odłączane.
Jeśli jest destination określona, ale nie jest dla niej ustawiona żadna rura, to metoda nic nie robi.
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
Parametry
- destination
-
WritableStream
Opcjonalny strumień specyficzny do odpięcia
Zwraca
unshift(any, BufferEncoding)
Przechodząc chunk jako null sygnalizuje koniec strumienia (EOF) i zachowuje się tak samo jak readable.push(null), po czym nie można już zapisać żadnych danych. Sygnał EOF jest umieszczany na końcu bufora, a wszystkie zbuforowane dane nadal są wypłukiwane.
Metoda ta readable.unshift() wsuwa fragment danych z powrotem do wewnętrznego bufora. Jest to przydatne w pewnych sytuacjach, gdy strumień jest konsumowany przez kod, który musi "odkonsumować" pewną ilość danych, które optymistycznym wyciągnął ze źródła, aby dane mogły zostać przekazane innej osobie.
Metoda nie stream.unshift(chunk) może być wywołana po 'end' wygenerowaniu zdarzenia, ponieważ w trakcie wykonywania zostanie wygenerowany błąd.
Programiści często korzystający powinni stream.unshift() rozważyć przejście na stream Transform zamiast tego. Zobacz sekcję API for stream implementers , aby uzyskać więcej informacji.
// 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;
}
}
}
W przeciwieństwie do push, nie zakończy stream.unshift(chunk) procesu odczytu przez resetowanie wewnętrznego stanu odczytu strumienia.
Może to powodować nieoczekiwane wyniki, jeśli readable.unshift() jest wywołany podczas odczytu (czyli z _read implementacji na niestandardowym strumieniu).
Natychmiastowe wywołanie do readable.unshift() wywołania zresetuje stan odczytu odpowiednio, jednak najlepiej unikać wywołań readable.unshift() podczas wykonywania odczytu.
function unshift(chunk: any, encoding?: BufferEncoding)
Parametry
- chunk
-
any
Fragment danych do przesunięcia do kolejki odczytu. Dla strumieni niedziałających w trybie obiektowym, chunk musi być {string}, {Buffer}, {TypedArray}, {DataView} lub null. Dla strumieni w trybie obiektowym może to chunk być dowolna wartość JavaScript.
- encoding
-
BufferEncoding
Kodowanie fragmentów znaków znaków. Musi być poprawnym kodowaniem Buffer , takim jak 'utf8' lub 'ascii'.
wrap(ReadableStream)
Przed Node.js 0.10 strumienie nie implementowały całego node:stream API modułu w obecnej formie. (Zobacz więcej Compatibility informacji.)
Korzystając ze starszej biblioteki Node.js, która generuje 'data' zdarzenia i ma metodę pauzy działającą wyłącznie doradczo, metoda ta readable.wrap() może być użyta do stworzenia strumienia Readable wykorzystującego stary strumień jako źródło danych.
Rzadko będzie konieczna do użycia readable.wrap() , ale metoda ta została udostępniona jako wygoda do interakcji ze starszymi aplikacjami Node.js i bibliotekami.
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
Parametry
- stream
-
ReadableStream
"Stary styl" czytelny strumień
Zwraca
[asyncIterator]()
function [asyncIterator](): AsyncIterator<any, undefined, any>
Zwraca
AsyncIterator<any, undefined, any>
AsyncIterator by w pełni pochłonąć strumień strumienia.
Szczegóły metody dziedziczonej
eventNames()
Zwraca tablicę z listą zdarzeń, dla których emiter zarejestrował odbiorniki.
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)[]
Zwraca
(string | symbol)[]
Dziedziczone od Stream.eventNames
getMaxListeners()
Zwraca bieżącą wartość maksymalnego odbiornika dla EventEmitter, która jest ustawiona przez emitter.setMaxListeners(n) lub domyślnie ma wartość events.defaultMaxListeners.
function getMaxListeners(): number
Zwraca
number
Dziedziczone od Stream.getMaxListeners
pipe<T>(T, PipeOptions)
function pipe<T>(destination: T, options?: PipeOptions): T
Parametry
- destination
-
T
- options
-
PipeOptions
Zwraca
T
Dziedziczone od Stream.pipe
setMaxListeners(number)
Domyślnie EventEmitters wyświetli ostrzeżenie, jeśli dla określonego zdarzenia zostanie dodane więcej niż 10 odbiorniki. Jest to przydatna wartość domyślna, która ułatwia znajdowanie przecieków pamięci. Metoda emitter.setMaxListeners() umożliwia zmodyfikowanie limitu dla tego konkretnego wystąpienia EventEmitter. Wartość można ustawić na Infinity (lub 0), aby wskazać nieograniczoną liczbę odbiorników.
Zwraca odwołanie do EventEmitter, aby wywołania mogły być łańcuchowe.
function setMaxListeners(n: number): Readable
Parametry
- n
-
number
Zwraca
Dziedziczone od Stream.setMaxListeners
[captureRejectionSymbol](Error, string | symbol, any[])
Metoda ta Symbol.for('nodejs.rejection') jest wywoływana w przypadku, gdy podczas emisji zdarzenia następuje odrzucenie obietnicy i captureRejections jest włączona na emiterze.
Można użyć events.captureRejectionSymbol go zamiast .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[])
Parametry
- error
-
Error
- event
-
string | symbol
- args
-
any[]
Dziedziczone od Stream.__@captureRejectionSymbol@175