Readable interface
- Uitbreiding
-
Stream
Eigenschappen
| closed | Is |
| destroyed | Is |
| errored | Geeft een foutmelding terug als de stroom is vernietigd met een foutmelding. |
| readable | Is |
| readable |
Geeft terug of de stroom werd vernietigd of foutief was voordat hij uitzendde |
| readable |
Geeft terug of |
| readable |
Getter voor de eigenschap |
| readable |
Wordt wanneer |
| readable |
Deze eigenschap weerspiegelt de huidige staat van een |
| readable |
Geeft de waarde van |
| readable |
Deze eigenschap bevat het aantal bytes (of objecten) in de wachtrij dat klaar is om gelezen te worden. De waarde levert introspectiegegevens over de status van de |
| readable |
Getter voor de eigenschap |
Methoden
| add |
|
| add |
Alias voor |
| compose(Writable |
Deze methode maakt het ook mogelijk om een Zie |
| destroy(Error) | Vernietig de stroom. Optioneel emitteren een Zodra Implementatoren moeten deze methode niet overschrijven, maar in plaats daarvan implementeren |
| drop(number, Abortable) | Deze methode geeft een nieuwe stream terug waarbij de eerste limietchunks vanaf het begin zijn weggelaten. |
| emit(string | symbol, any[]) | |
| emit<E>(E, Readable |
Roept synchroon elk van de listeners aan die zijn geregistreerd voor de gebeurtenis met de naam Retourneert
|
| every((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<Readable |
Deze methode lijkt op |
| filter((data: any, options?: Abortable) => boolean | Promise<boolean>, Readable |
Deze methode maakt het filteren van de stroom mogelijk. Voor elk chunk in de stroom wordt de fn-functie aangeroepen en als deze een truthy-waarde teruggeeft, wordt de chunk doorgegeven aan de resultaatstroom.
Als de fn-functie een belofte teruggeeft, zal die belofte ed zijn |
| find((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<Readable |
|
| find<T>((data: any, options?: Abortable) => data is T, Pick<Readable |
Deze methode lijkt op |
| flat |
Deze methode geeft een nieuwe stroom terug door de gegeven callback toe te passen op elk stuk van de stroom en vervolgens het resultaat af te vlakken. Het is mogelijk om een stroom of een andere iterabele of asynchrone iterable terug te geven vanuit fn en de resulterende stromen worden samengevoegd (afgevlakt) in de teruggestuurde stroom. |
| for |
Deze methode maakt het mogelijk om een stroom te itereren. Voor elk chunk in de stroom wordt de fn-functie aangeroepen.
Als de fn-functie een belofte teruggeeft, zal die belofte ed zijn Deze methode verschilt van Deze methode verschilt van het luisteren naar het |
| is |
De
|
| iterator(Readable |
De iterator die met deze methode wordt gemaakt, geeft gebruikers de optie om de vernietiging van de stroom te annuleren als de |
| listener |
|
| listener |
Retourneert het aantal listeners dat luistert naar de gebeurtenis met de naam |
| listeners(string | symbol) | |
| listeners<E>(E) | Retourneert een kopie van de matrix van listeners voor de gebeurtenis met de naam
|
| map((data: any, options?: Abortable) => any, Readable |
Deze methode maakt het mogelijk om de stroom in kaart te brengen. De fn-functie wordt aangeroepen voor elk chunk in de stroom.
Als de fn-functie een belofte teruggeeft - zal die belofte ed zijn |
| off(string | symbol, (args: any[]) => void) | |
| off<E>(E, (args: Readable |
Alias voor |
| on(string | symbol, (args: any[]) => void) | |
| on<E>(E, (args: Readable |
Hiermee voegt u de functie
Retourneert een verwijzing naar de Gebeurtenislisteners worden standaard aangeroepen in de volgorde waarin ze worden toegevoegd. De methode
|
| once(string | symbol, (args: any[]) => void) | |
| once<E>(E, (args: Readable |
Hiermee voegt u een eenmalige
Retourneert een verwijzing naar de Gebeurtenislisteners worden standaard aangeroepen in de volgorde waarin ze worden toegevoegd. De methode
|
| pause() | De
De |
| prepend |
|
| prepend |
Hiermee voegt u de functie
Retourneert een verwijzing naar de |
| prepend |
|
| prepend |
Hiermee voegt u een eenmalige
Retourneert een verwijzing naar de |
| push(any, Buffer |
|
| raw |
|
| raw |
Retourneert een kopie van de matrix van listeners voor de gebeurtenis met de naam
|
| read(number) | De Het optionele Als het Het De
Elke oproep naar Daarom is het nodig om de volledige inhoud van een bestand uit een
Een Als de
Call-read nadat het |
| reduce<T>((previous: any, data: any, options?: Abortable) => T) | Deze methode roept fn aan op elk stuk van de stroom in volgorde, waarbij het resultaat van de berekening op het vorige element wordt doorgegeven. Het geeft een belofte terug voor de uiteindelijke waarde van de reductie. Als er geen beginwaarde wordt aangegeven, wordt het eerste stuk van de stroom als beginwaarde gebruikt.
Als de stroom leeg is, wordt de belofte afgewezen met een De reducerfunctie herhaalt de stroom element voor element, wat betekent dat er geen gelijktijdige parameter of parallelisme is. Om gelijktijdig een reduce uit te voeren, kun je de asynchrone functie naar |
| reduce<T>((previous: T, data: any, options?: Abortable) => T, T, Abortable) | |
| remove |
|
| remove |
Hiermee verwijdert u alle listeners of de listeners van de opgegeven Het is slecht om listeners te verwijderen die ergens anders in de code zijn toegevoegd, met name wanneer het Retourneert een verwijzing naar de |
| remove |
|
| remove |
Hiermee verwijdert u de opgegeven
Zodra een gebeurtenis is verzonden, worden alle listeners die eraan zijn gekoppeld op het moment van verzenden in volgorde aangeroepen. Dit impliceert dat elke of
Omdat luisteraars worden beheerd via een interne array, zal het aanroepen hiervan de positie-indexen veranderen van elke luisteraar die na verwijdering van de luisteraar is geregistreerd. Dit heeft geen invloed op de volgorde waarin listeners worden aangeroepen, maar dit betekent dat kopieën van de listenermatrix die worden geretourneerd door de methode Wanneer één functie meerdere keren is toegevoegd als handler voor één gebeurtenis (zoals in het onderstaande voorbeeld), verwijdert
Retourneert een verwijzing naar de |
| resume() | De De
De |
| set |
De Standaard wordt er geen codering toegewezen en worden stroomgegevens als De
|
| some((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<Readable |
Deze methode lijkt op |
| take(number, Abortable) | Deze methode geeft een nieuwe stroom terug met de eerste limietchunks . |
| to |
Deze methode maakt het gemakkelijk mogelijk om de inhoud van een stroom te verkrijgen. Omdat deze methode de hele stroom in het geheugen leest, worden de voordelen van stromen tenietgedaan. Het is bedoeld voor interoperabiliteit en gemak, niet als de primaire manier om streams te consumeren. |
| unpipe(Writable |
De Als de niet Als de is
|
| unshift(any, Buffer |
Als signaal het einde van de stroom (EOF) doorgeven De De Ontwikkelaars die vaak gebruiken
In tegenstelling tot push |
| wrap(Readable |
Voor Node.js 0.10 implementeerden streams niet de volledige Wanneer je een oudere Node.js bibliotheek gebruikt die gebeurtenissen genereert Het zal zelden nodig zijn om te gebruiken
|
| [async |
Belt met een |
| [async |
|
| [to |
Wanneer de Dit levert een batchgesynchroniseerde asynchrone iterator die de interne buffer van de stream in De teruggestuurde iterator wordt getagd als een gevalideerde bron, zodat
Zonder de |
Overgenomen methoden
| event |
Retourneert een matrix met de gebeurtenissen waarvoor de emitter listeners heeft geregistreerd.
|
| get |
Retourneert de huidige maximum-listenerwaarde voor de |
| pipe<T>(T, Pipe |
|
| set |
Standaard worden Retourneert een verwijzing naar de |
| [capture |
De
|
Eigenschapdetails
closed
Is true nadat 'close' er is uitgezonden.
closed: boolean
Waarde van eigenschap
boolean
destroyed
Is true nadat readable.destroy() er is opgeroepen.
destroyed: boolean
Waarde van eigenschap
boolean
errored
Geeft een foutmelding terug als de stroom is vernietigd met een foutmelding.
errored: Error | null
Waarde van eigenschap
Error | null
readable
Is true als het veilig is om 'read' aan te roepen, wat betekent dat de stream niet is vernietigd of uitgezonden 'error' of 'end'.
readable: boolean
Waarde van eigenschap
boolean
readableAborted
Geeft terug of de stroom werd vernietigd of foutief was voordat hij uitzendde 'end'.
readableAborted: boolean
Waarde van eigenschap
boolean
readableDidRead
Geeft terug of 'data' er is uitgezonden.
readableDidRead: boolean
Waarde van eigenschap
boolean
readableEncoding
Getter voor de eigenschap encoding van een gegeven Readable stroom. De encoding eigenschap kan worden ingesteld met behulp van de setEncoding-methode .
readableEncoding: BufferEncoding | null
Waarde van eigenschap
BufferEncoding | null
readableEnded
Wordt wanneer true'end' een gebeurtenis wordt uitgezonden.
readableEnded: boolean
Waarde van eigenschap
boolean
readableFlowing
Deze eigenschap weerspiegelt de huidige staat van een Readable beek, zoals beschreven in de sectie Drie toestanden .
readableFlowing: boolean | null
Waarde van eigenschap
boolean | null
readableHighWaterMark
Geeft de waarde van highWaterMark door gegeven terug bij het creëren van dit Readable.
readableHighWaterMark: number
Waarde van eigenschap
number
readableLength
Deze eigenschap bevat het aantal bytes (of objecten) in de wachtrij dat klaar is om gelezen te worden. De waarde levert introspectiegegevens over de status van de highWaterMark.
readableLength: number
Waarde van eigenschap
number
readableObjectMode
Getter voor de eigenschap objectMode van een gegeven Readable stroom.
readableObjectMode: boolean
Waarde van eigenschap
boolean
Methodedetails
addListener(string | symbol, (args: any[]) => void)
function addListener(eventName: string | symbol, listener: (args: any[]) => void): this
Parameters
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Retouren
this
addListener<E>(E, (args: ReadableEventMap[E]) => void)
Alias voor emitter.on(eventName, listener).
function addListener<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): this
Parameters
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
Retouren
this
compose(WritableStream | WritableStream | TransformStream | (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) is gelijk aan stream.compose(readable, s).
Deze methode maakt het ook mogelijk om een AbortSignal te leveren, die de gecomponeerde stroom vernietigt wanneer deze wordt afgebroken.
Zie stream.compose(...streams) voor meer informatie.
function compose(stream: WritableStream | WritableStream | TransformStream | (source: any) => void, options?: Abortable): Duplex
Parameters
- stream
-
WritableStream | WritableStream | TransformStream | (source: any) => void
- options
-
Abortable
Retouren
Duplex
een stroom die samengesteld is met de stroom stream.
destroy(Error)
Vernietig de stroom. Optioneel emitteren een 'error' event en een 'close' event (tenzij emitClose is ingesteld op false). Na deze aanroep zal de leesbare stream alle interne bronnen vrijgeven en worden daaropvolgende aanroepen push() genegeerd.
Zodra destroy() deze is aangeroepen, zijn eventuele verdere aanroepen een no-op en mogen er geen verdere fouten behalve van _destroy() worden uitgegeven als 'error'.
Implementatoren moeten deze methode niet overschrijven, maar in plaats daarvan implementeren readable._destroy().
function destroy(error?: Error): this
Parameters
- error
-
Error
Fout die als payload wordt doorgegeven in het 'error' geval
Retouren
this
drop(number, Abortable)
Deze methode geeft een nieuwe stream terug waarbij de eerste limietchunks vanaf het begin zijn weggelaten.
function drop(limit: number, options?: Abortable): Readable
Parameters
- limit
-
number
het aantal stukken dat uit de leesbare categorie moet verdwijnen.
- options
-
Abortable
Retouren
Een stream met limietstukken die vanaf het begin zijn afgevallen.
emit(string | symbol, any[])
function emit(eventName: string | symbol, args: any[]): boolean
Parameters
- eventName
-
string | symbol
- args
-
any[]
Retouren
boolean
emit<E>(E, ReadableEventMap[E])
Roept synchroon elk van de listeners aan die zijn geregistreerd voor de gebeurtenis met de naam eventName, in de volgorde waarin ze zijn geregistreerd, waarbij de opgegeven argumenten aan elk item worden doorgegeven.
Retourneert true als de gebeurtenis listeners had, anders false.
import { EventEmitter } from 'node:events';
const myEmitter = new EventEmitter();
// First listener
myEmitter.on('event', function firstListener() {
console.log('Helloooo! first listener');
});
// Second listener
myEmitter.on('event', function secondListener(arg1, arg2) {
console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
});
// Third listener
myEmitter.on('event', function thirdListener(...args) {
const parameters = args.join(', ');
console.log(`event with parameters ${parameters} in third listener`);
});
console.log(myEmitter.listeners('event'));
myEmitter.emit('event', 1, 2, 3, 4, 5);
// Prints:
// [
// [Function: firstListener],
// [Function: secondListener],
// [Function: thirdListener]
// ]
// Helloooo! first listener
// event with parameters 1, 2 in second listener
// event with parameters 1, 2, 3, 4, 5 in third listener
function emit<E>(eventName: E, args: ReadableEventMap[E]): boolean
Parameters
- eventName
-
E
- args
-
ReadableEventMap[E]
Retouren
boolean
every((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<ReadableOperatorOptions, "concurrency" | "signal">)
Deze methode lijkt op Array.prototype.every en roept fn aan op elk chunk in de stream om te controleren of alle gewachte retourwaarden de truthy-waarden voor fn zijn. Zodra een fn call op een chunk awaited return value vals is, wordt de stream vernietigd en wordt de belofte nagekomen met false.
Als alle fn-aanroepen op de chunks een truthy-waarde teruggeven, wordt de belofte vervuld met true.
function every(fn: (data: any, options?: Abortable) => boolean | Promise<boolean>, options?: Pick<ReadableOperatorOptions, "concurrency" | "signal">): Promise<boolean>
Parameters
- fn
-
(data: any, options?: Abortable) => boolean | Promise<boolean>
een functie om elk stuk van de stroom aan te roepen. Asynchroon of niet.
- options
-
Pick<ReadableOperatorOptions, "concurrency" | "signal">
Retouren
Promise<boolean>
Een belofte die evalueert of trueFN een waarheidswaarde teruggeeft voor elk van de chunks.
filter((data: any, options?: Abortable) => boolean | Promise<boolean>, ReadableOperatorOptions)
Deze methode maakt het filteren van de stroom mogelijk. Voor elk chunk in de stroom wordt de fn-functie aangeroepen en als deze een truthy-waarde teruggeeft, wordt de chunk doorgegeven aan de resultaatstroom.
Als de fn-functie een belofte teruggeeft, zal die belofte ed zijn await.
function filter(fn: (data: any, options?: Abortable) => boolean | Promise<boolean>, options?: ReadableOperatorOptions): Readable
Parameters
- fn
-
(data: any, options?: Abortable) => boolean | Promise<boolean>
een functie om chunks uit de stream te filteren. Asynchroon of niet.
- options
-
ReadableOperatorOptions
Retouren
een stroom gefilterd met het predicaat FN.
find((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<ReadableOperatorOptions, "concurrency" | "signal">)
function find(fn: (data: any, options?: Abortable) => boolean | Promise<boolean>, options?: Pick<ReadableOperatorOptions, "concurrency" | "signal">): Promise<any>
Parameters
- fn
-
(data: any, options?: Abortable) => boolean | Promise<boolean>
- options
-
Pick<ReadableOperatorOptions, "concurrency" | "signal">
Retouren
Promise<any>
find<T>((data: any, options?: Abortable) => data is T, Pick<ReadableOperatorOptions, "concurrency" | "signal">)
Deze methode lijkt op Array.prototype.find en roept fn aan op elk chunk in de stream om een chunk te vinden met een truthy-waarde voor fn. Zodra de verwachte retourwaarde van een fn-oproep waarheidsgetrouwe is, wordt de stroom vernietigd en wordt de belofte nagekomen met een waarde waarvoor fn een waarheidswaarde terugstuurde.
Als alle fn-aanroepen op de chunks een valse waarde teruggeven, wordt de belofte nagekomen met undefined.
function find<T>(fn: (data: any, options?: Abortable) => data is T, options?: Pick<ReadableOperatorOptions, "concurrency" | "signal">): Promise<T | undefined>
Parameters
- fn
-
(data: any, options?: Abortable) => data is T
een functie om elk stuk van de stroom aan te roepen. Asynchroon of niet.
- options
-
Pick<ReadableOperatorOptions, "concurrency" | "signal">
Retouren
Promise<T | undefined>
een belofte die evalueert naar het eerste stuk waarvoor Fn met een truthy-waarde evalueerde, of undefined als er geen element is gevonden.
flatMap((data: any, options?: Abortable) => any, Pick<ReadableOperatorOptions, "concurrency" | "signal">)
Deze methode geeft een nieuwe stroom terug door de gegeven callback toe te passen op elk stuk van de stroom en vervolgens het resultaat af te vlakken.
Het is mogelijk om een stroom of een andere iterabele of asynchrone iterable terug te geven vanuit fn en de resulterende stromen worden samengevoegd (afgevlakt) in de teruggestuurde stroom.
function flatMap(fn: (data: any, options?: Abortable) => any, options?: Pick<ReadableOperatorOptions, "concurrency" | "signal">): Readable
Parameters
- fn
-
(data: any, options?: Abortable) => any
een functie om elk chunk in de stream te mappen. Misschien is het asynchroon. Misschien een stroom of generator.
- options
-
Pick<ReadableOperatorOptions, "concurrency" | "signal">
Retouren
een stroom die wordt platgemapt met de functie fn.
forEach((data: any, options?: Abortable) => void | Promise<void>, Pick<ReadableOperatorOptions, "concurrency" | "signal">)
Deze methode maakt het mogelijk om een stroom te itereren. Voor elk chunk in de stroom wordt de fn-functie aangeroepen.
Als de fn-functie een belofte teruggeeft, zal die belofte ed zijn await.
Deze methode verschilt van for await...of lussen doordat het optioneel chunks gelijktijdig kan verwerken.
Daarnaast kan een forEach iteratie alleen worden gestopt door een signal optie te hebben gepasseerd en de bijbehorende AbortController te beëindigen terwijl for await...of kan worden gestopt met break of return.
In beide gevallen wordt de stroom vernietigd.
Deze methode verschilt van het luisteren naar het 'data' evenement doordat het het evenement in de onderliggende machine gebruikt readable en het aantal gelijktijdige fn-aanroepen kan beperken.
function forEach(fn: (data: any, options?: Abortable) => void | Promise<void>, options?: Pick<ReadableOperatorOptions, "concurrency" | "signal">): Promise<void>
Parameters
- fn
-
(data: any, options?: Abortable) => void | Promise<void>
een functie om elk stuk van de stroom aan te roepen. Asynchroon of niet.
- options
-
Pick<ReadableOperatorOptions, "concurrency" | "signal">
Retouren
Promise<void>
Een belofte voor wanneer de stream is afgelopen.
isPaused()
De readable.isPaused() methode geeft de huidige bedrijfstoestand van de Readableterug.
Dit wordt voornamelijk gebruikt door het mechanisme dat ten grondslag ligt aan de readable.pipe() methode.
In de meeste typische gevallen is er geen reden om deze methode direct te gebruiken.
const readable = new stream.Readable();
readable.isPaused(); // === false
readable.pause();
readable.isPaused(); // === true
readable.resume();
readable.isPaused(); // === false
function isPaused(): boolean
Retouren
boolean
iterator(ReadableIteratorOptions)
De iterator die met deze methode wordt gemaakt, geeft gebruikers de optie om de vernietiging van de stroom te annuleren als de for await...of lus wordt verlaten door return, break, of throw, of als de iterator de stroom moet vernietigen als de stroom tijdens iteratie een fout veroorzaakt.
function iterator(options?: ReadableIteratorOptions): AsyncIterator<any>
Parameters
- options
-
ReadableIteratorOptions
Retouren
AsyncIterator<any>
listenerCount(string | symbol, (args: any[]) => void)
function listenerCount(eventName: string | symbol, listener?: (args: any[]) => void): number
Parameters
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Retouren
number
listenerCount<E>(E, (args: ReadableEventMap[E]) => void)
Retourneert het aantal listeners dat luistert naar de gebeurtenis met de naam eventName.
Als listener wordt opgegeven, wordt geretourneerd hoe vaak de listener wordt gevonden in de lijst met listeners van de gebeurtenis.
function listenerCount<E>(eventName: E, listener?: (args: ReadableEventMap[E]) => void): number
Parameters
- eventName
-
E
De naam van de gebeurtenis die wordt geluisterd
- listener
-
(args: ReadableEventMap[E]) => void
De functie gebeurtenis-handler
Retouren
number
listeners(string | symbol)
function listeners(eventName: string | symbol): (args: any[]) => void[]
Parameters
- eventName
-
string | symbol
Retouren
(args: any[]) => void[]
listeners<E>(E)
Retourneert een kopie van de matrix van listeners voor de gebeurtenis met de naam eventName.
server.on('connection', (stream) => {
console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
function listeners<E>(eventName: E): (args: ReadableEventMap[E]) => void[]
Parameters
- eventName
-
E
Retouren
(args: ReadableEventMap[E]) => void[]
map((data: any, options?: Abortable) => any, ReadableOperatorOptions)
Deze methode maakt het mogelijk om de stroom in kaart te brengen. De fn-functie wordt aangeroepen voor elk chunk in de stroom.
Als de fn-functie een belofte teruggeeft - zal die belofte ed zijn awaitvoordat deze aan de resultaatstroom wordt doorgegeven.
function map(fn: (data: any, options?: Abortable) => any, options?: ReadableOperatorOptions): Readable
Parameters
- fn
-
(data: any, options?: Abortable) => any
een functie om elk chunk in de stream te mappen. Asynchroon of niet.
- options
-
ReadableOperatorOptions
Retouren
Een stroom die is gemapt met de functie FN.
off(string | symbol, (args: any[]) => void)
function off(eventName: string | symbol, listener: (args: any[]) => void): this
Parameters
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Retouren
this
off<E>(E, (args: ReadableEventMap[E]) => void)
Alias voor emitter.removeListener().
function off<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): this
Parameters
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
Retouren
this
on(string | symbol, (args: any[]) => void)
function on(eventName: string | symbol, listener: (args: any[]) => void): this
Parameters
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Retouren
this
on<E>(E, (args: ReadableEventMap[E]) => void)
Hiermee voegt u de functie listener toe aan het einde van de listenersmatrix voor de gebeurtenis met de naam eventName. Er worden geen controles uitgevoerd om te zien of de listener al is toegevoegd. Meerdere aanroepen die dezelfde combinatie van eventName doorgeven en listener leiden ertoe dat de listener meerdere keren wordt toegevoegd en aangeroepen.
server.on('connection', (stream) => {
console.log('someone connected!');
});
Retourneert een verwijzing naar de EventEmitter, zodat aanroepen kunnen worden gekoppeld.
Gebeurtenislisteners worden standaard aangeroepen in de volgorde waarin ze worden toegevoegd. De methode emitter.prependListener() kan worden gebruikt als alternatief om de gebeurtenislistener toe te voegen aan het begin van de listenersmatrix.
import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.on('foo', () => console.log('a'));
myEE.prependListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// a
function on<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): this
Parameters
- eventName
-
E
De naam van de gebeurtenis.
- listener
-
(args: ReadableEventMap[E]) => void
De callback-functie
Retouren
this
once(string | symbol, (args: any[]) => void)
function once(eventName: string | symbol, listener: (args: any[]) => void): this
Parameters
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Retouren
this
once<E>(E, (args: ReadableEventMap[E]) => void)
Hiermee voegt u een eenmaligeeventName wordt geactiveerd, wordt deze listener verwijderd en vervolgens aangeroepen.
server.once('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Retourneert een verwijzing naar de EventEmitter, zodat aanroepen kunnen worden gekoppeld.
Gebeurtenislisteners worden standaard aangeroepen in de volgorde waarin ze worden toegevoegd. De methode emitter.prependOnceListener() kan worden gebruikt als alternatief om de gebeurtenislistener toe te voegen aan het begin van de listenersmatrix.
import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.once('foo', () => console.log('a'));
myEE.prependOnceListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// a
function once<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): this
Parameters
- eventName
-
E
De naam van de gebeurtenis.
- listener
-
(args: ReadableEventMap[E]) => void
De callback-functie
Retouren
this
pause()
De readable.pause() methode zorgt ervoor dat een stroom in stromende modus stopt met het uitzenden 'data' van gebeurtenissen, waardoor deze uit de stromende modus schakelt. Alle beschikbare data blijft in de interne buffer.
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);
});
De readable.pause() methode heeft geen effect als er een 'readable' event listener is.
function pause(): this
Retouren
this
prependListener(string | symbol, (args: any[]) => void)
function prependListener(eventName: string | symbol, listener: (args: any[]) => void): this
Parameters
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Retouren
this
prependListener<E>(E, (args: ReadableEventMap[E]) => void)
Hiermee voegt u de functie listener toe aan de die begint van de listenersmatrix voor de gebeurtenis met de naam eventName. Er worden geen controles uitgevoerd om te zien of de listener al is toegevoegd. Meerdere aanroepen die dezelfde combinatie van eventName doorgeven en listener leiden ertoe dat de listener meerdere keren wordt toegevoegd en aangeroepen.
server.prependListener('connection', (stream) => {
console.log('someone connected!');
});
Retourneert een verwijzing naar de EventEmitter, zodat aanroepen kunnen worden gekoppeld.
function prependListener<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): this
Parameters
- eventName
-
E
De naam van de gebeurtenis.
- listener
-
(args: ReadableEventMap[E]) => void
De callback-functie
Retouren
this
prependOnceListener(string | symbol, (args: any[]) => void)
function prependOnceListener(eventName: string | symbol, listener: (args: any[]) => void): this
Parameters
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Retouren
this
prependOnceListener<E>(E, (args: ReadableEventMap[E]) => void)
Hiermee voegt u een eenmaligelistener functie toe voor de gebeurtenis met de naam eventName aan de die begint van de listenersmatrix. De volgende keer dat eventName wordt geactiveerd, wordt deze listener verwijderd en vervolgens aangeroepen.
server.prependOnceListener('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Retourneert een verwijzing naar de EventEmitter, zodat aanroepen kunnen worden gekoppeld.
function prependOnceListener<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): this
Parameters
- eventName
-
E
De naam van de gebeurtenis.
- listener
-
(args: ReadableEventMap[E]) => void
De callback-functie
Retouren
this
push(any, BufferEncoding)
function push(chunk: any, encoding?: BufferEncoding): boolean
Parameters
- chunk
-
any
- encoding
-
BufferEncoding
Retouren
boolean
rawListeners(string | symbol)
function rawListeners(eventName: string | symbol): (args: any[]) => void[]
Parameters
- eventName
-
string | symbol
Retouren
(args: any[]) => void[]
rawListeners<E>(E)
Retourneert een kopie van de matrix van listeners voor de gebeurtenis met de naam eventName, inclusief eventuele wrappers (zoals die zijn gemaakt door .once()).
import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.once('log', () => console.log('log once'));
// Returns a new Array with a function `onceWrapper` which has a property
// `listener` which contains the original listener bound above
const listeners = emitter.rawListeners('log');
const logFnWrapper = listeners[0];
// Logs "log once" to the console and does not unbind the `once` event
logFnWrapper.listener();
// Logs "log once" to the console and removes the listener
logFnWrapper();
emitter.on('log', () => console.log('log persistently'));
// Will return a new Array with a single function bound by `.on()` above
const newListeners = emitter.rawListeners('log');
// Logs "log persistently" twice
newListeners[0]();
emitter.emit('log');
function rawListeners<E>(eventName: E): (args: ReadableEventMap[E]) => void[]
Parameters
- eventName
-
E
Retouren
(args: ReadableEventMap[E]) => void[]
read(number)
De readable.read() methode leest gegevens uit de interne buffer en geeft deze terug. Als er geen gegevens beschikbaar zijn om te lezen, null wordt deze teruggegeven. Standaard wordt de data als object Buffer teruggegeven, tenzij er een codering is gespecificeerd met de readable.setEncoding() methode of de stream in objectmodus werkt.
Het optionele size argument specificeert een specifiek aantal bytes om te lezen. Als size bytes niet beschikbaar zijn om gelezen te worden, null worden ze teruggegeven tenzij de stroom is beëindigd, in welk geval alle gegevens die nog in de interne buffer zitten worden teruggegeven.
Als het size argument niet wordt gespecificeerd, worden alle gegevens in de interne buffer teruggegeven.
Het size argument moet kleiner zijn dan of gelijk aan 1 GiB.
De readable.read() methode mag alleen worden aangeroepen op Readable stromen die in gepauzeerde modus werken. In flowing mode readable.read() wordt automatisch aangeroepen totdat de interne buffer volledig is leeggezogen.
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.');
});
Elke oproep naar readable.read() geeft een stuk data terug, of null. De stukken zijn niet samengevoegd. Een while lus is noodzakelijk om alle data die momenteel in de buffer aanwezig is te consumeren. Bij het lezen van een groot bestand .read() kan het terugkomen nulldat alle tot nu toe gebufferde inhoud is verbruikt, maar er is nog meer data te komen die nog niet gebufft is. In dit geval wordt er een nieuw 'readable' event gegenereerd wanneer er meer data in de buffer is. Ten slotte wordt het 'end' evenement uitgezonden wanneer er geen data meer beschikbaar is.
Daarom is het nodig om de volledige inhoud van een bestand uit een readablete lezen, om stukken over meerdere 'readable' gebeurtenissen te verzamelen:
const chunks = [];
readable.on('readable', () => {
let chunk;
while (null !== (chunk = readable.read())) {
chunks.push(chunk);
}
});
readable.on('end', () => {
const content = chunks.join('');
});
Een Readable stroom in objectmodus zal altijd één item teruggeven van een aanroep naar readable.read(size), ongeacht de waarde van het size argument.
Als de readable.read() methode een stuk data teruggeeft, wordt er ook een 'data' gebeurtenis uitgezonden.
Call-read nadat het 'end' event is uitgezonden, zal terugkerennull. Er zal geen runtime-fout worden geactiveerd.
function read(size?: number): any
Parameters
- size
-
number
Optioneel argument om aan te geven hoeveel data gelezen moet worden.
Retouren
any
reduce<T>((previous: any, data: any, options?: Abortable) => T)
Deze methode roept fn aan op elk stuk van de stroom in volgorde, waarbij het resultaat van de berekening op het vorige element wordt doorgegeven. Het geeft een belofte terug voor de uiteindelijke waarde van de reductie.
Als er geen beginwaarde wordt aangegeven, wordt het eerste stuk van de stroom als beginwaarde gebruikt.
Als de stroom leeg is, wordt de belofte afgewezen met een TypeError met de ERR_INVALID_ARGS code-eigenschap.
De reducerfunctie herhaalt de stroom element voor element, wat betekent dat er geen gelijktijdige parameter of parallelisme is. Om gelijktijdig een reduce uit te voeren, kun je de asynchrone functie naar readable.map methode extraheren.
function reduce<T>(fn: (previous: any, data: any, options?: Abortable) => T): Promise<T>
Parameters
- fn
-
(previous: any, data: any, options?: Abortable) => T
een reducerfunctie om elk chunk in de stroom aan te roepen. Asynchroon of niet.
Retouren
Promise<T>
een belofte voor de uiteindelijke waarde van de reductie.
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>
Parameters
- fn
-
(previous: T, data: any, options?: Abortable) => T
- initial
-
T
- options
-
Abortable
Retouren
Promise<T>
removeAllListeners(string | symbol)
function removeAllListeners(eventName?: string | symbol): this
Parameters
- eventName
-
string | symbol
Retouren
this
removeAllListeners<E>(E)
Hiermee verwijdert u alle listeners of de listeners van de opgegeven eventName.
Het is slecht om listeners te verwijderen die ergens anders in de code zijn toegevoegd, met name wanneer het EventEmitter exemplaar is gemaakt door een ander onderdeel of een andere module (bijvoorbeeld sockets of bestandsstromen).
Retourneert een verwijzing naar de EventEmitter, zodat aanroepen kunnen worden gekoppeld.
function removeAllListeners<E>(eventName?: E): this
Parameters
- eventName
-
E
Retouren
this
removeListener(string | symbol, (args: any[]) => void)
function removeListener(eventName: string | symbol, listener: (args: any[]) => void): this
Parameters
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Retouren
this
removeListener<E>(E, (args: ReadableEventMap[E]) => void)
Hiermee verwijdert u de opgegeven listener uit de listenermatrix voor de gebeurtenis met de naam eventName.
const callback = (stream) => {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);
removeListener() verwijdert maximaal één exemplaar van een listener uit de listenermatrix. Als er meerdere keren één listener is toegevoegd aan de listenermatrix voor de opgegeven eventName, moet removeListener() meerdere keren worden aangeroepen om elk exemplaar te verwijderen.
Zodra een gebeurtenis is verzonden, worden alle listeners die eraan zijn gekoppeld op het moment van verzenden in volgorde aangeroepen. Dit impliceert dat elke of removeListener() call removeAllListeners()na het uitzenden en voordat de laatste luisteraar de uitvoering voltooit, ze niet uit emit() de uitvoering zullen verwijderen. Volgende gebeurtenissen gedragen zich zoals verwacht.
import { EventEmitter } from 'node:events';
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
const callbackA = () => {
console.log('A');
myEmitter.removeListener('event', callbackB);
};
const callbackB = () => {
console.log('B');
};
myEmitter.on('event', callbackA);
myEmitter.on('event', callbackB);
// callbackA removes listener callbackB but it will still be called.
// Internal listener array at time of emit [callbackA, callbackB]
myEmitter.emit('event');
// Prints:
// A
// B
// callbackB is now removed.
// Internal listener array [callbackA]
myEmitter.emit('event');
// Prints:
// A
Omdat luisteraars worden beheerd via een interne array, zal het aanroepen hiervan de positie-indexen veranderen van elke luisteraar die na verwijdering van de luisteraar is geregistreerd. Dit heeft geen invloed op de volgorde waarin listeners worden aangeroepen, maar dit betekent dat kopieën van de listenermatrix die worden geretourneerd door de methode emitter.listeners() opnieuw moeten worden gemaakt.
Wanneer één functie meerdere keren is toegevoegd als handler voor één gebeurtenis (zoals in het onderstaande voorbeeld), verwijdert removeListener() het laatst toegevoegde exemplaar. In het voorbeeld wordt de once('ping') listener verwijderd:
import { EventEmitter } from 'node:events';
const ee = new EventEmitter();
function pong() {
console.log('pong');
}
ee.on('ping', pong);
ee.once('ping', pong);
ee.removeListener('ping', pong);
ee.emit('ping');
ee.emit('ping');
Retourneert een verwijzing naar de EventEmitter, zodat aanroepen kunnen worden gekoppeld.
function removeListener<E>(eventName: E, listener: (args: ReadableEventMap[E]) => void): this
Parameters
- eventName
-
E
- listener
-
(args: ReadableEventMap[E]) => void
Retouren
this
resume()
De readable.resume() methode zorgt ervoor dat een expliciet gepauzeerde Readable stroom weer gebeurtenissen uitzendt 'data' , waardoor de stroom in stromende modus wordt overgeschakeld.
De readable.resume() methode kan worden gebruikt om de data van een stroom volledig te consumeren zonder daadwerkelijk iets van die data te verwerken:
getReadableStreamSomehow()
.resume()
.on('end', () => {
console.log('Reached the end, but did not read anything.');
});
De readable.resume() methode heeft geen effect als er een 'readable' event listener is.
function resume(): this
Retouren
this
setEncoding(BufferEncoding)
De readable.setEncoding() methode stelt de tekencodering in voor data die uit de Readable stroom wordt gelezen.
Standaard wordt er geen codering toegewezen en worden stroomgegevens als Buffer objecten teruggegeven. Het instellen van een codering zorgt ervoor dat de stroomgegevens worden teruggegeven als strings van de gespecificeerde codering in plaats van als Buffer objecten. Bijvoorbeeld, het aanroepen readable.setEncoding('utf8') zorgt ervoor dat de uitvoerdata wordt geïnterpreteerd als UTF-8-data en als strings wordt doorgegeven. Callen readable.setEncoding('hex') zorgt ervoor dat de data in hexadecimale stringformaat wordt gecodeerd.
De Readable stroom zal multi-byte karakters correct afhandelen die via de stroom worden geleverd en anders verkeerd gedecodeerd zouden worden als ze simpelweg als Buffer objecten uit de stroom worden gehaald.
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): this
Parameters
- encoding
-
BufferEncoding
De codering die moet worden gebruikt.
Retouren
this
some((data: any, options?: Abortable) => boolean | Promise<boolean>, Pick<ReadableOperatorOptions, "concurrency" | "signal">)
Deze methode lijkt op Array.prototype.some en roept fn aan op elk chunk in de stream totdat de gewachte returnwaarde (of een willekeurige truthy-waarde) is true . Zodra een fn call op een chunk awaited return value waarheidsgetrouwe is, wordt de stream vernietigd en wordt de belofte nagekomen met true.
Als geen van de fn-oproepen op de chunks een waarheidsgetrouwe waarde teruggeeft, wordt de belofte nagekomen met false.
function some(fn: (data: any, options?: Abortable) => boolean | Promise<boolean>, options?: Pick<ReadableOperatorOptions, "concurrency" | "signal">): Promise<boolean>
Parameters
- fn
-
(data: any, options?: Abortable) => boolean | Promise<boolean>
een functie om elk stuk van de stroom aan te roepen. Asynchroon of niet.
- options
-
Pick<ReadableOperatorOptions, "concurrency" | "signal">
Retouren
Promise<boolean>
Een belofte die evalueert of trueFN een truthy-waarde teruggeeft voor ten minste één van de chunks.
take(number, Abortable)
Deze methode geeft een nieuwe stroom terug met de eerste limietchunks .
function take(limit: number, options?: Abortable): Readable
Parameters
- limit
-
number
Het aantal stukken dat uit het leesbare materiaal moet worden gehaald.
- options
-
Abortable
Retouren
Een stream met limietstukken genomen.
toArray(Abortable)
Deze methode maakt het gemakkelijk mogelijk om de inhoud van een stroom te verkrijgen.
Omdat deze methode de hele stroom in het geheugen leest, worden de voordelen van stromen tenietgedaan. Het is bedoeld voor interoperabiliteit en gemak, niet als de primaire manier om streams te consumeren.
function toArray(options?: Abortable): Promise<any[]>
Parameters
- options
-
Abortable
Retouren
Promise<any[]>
een belofte met een array met de inhoud van de stream.
unpipe(WritableStream)
De readable.unpipe() methode maakt een Writable eerder aangesloten stroom los met behulp van de pijpmethode .
Als de niet destination wordt gespecificeerd, worden alle leidingen losgekoppeld.
Als de is destination gespecificeerd, maar er is geen pijp voor ingesteld, dan doet de methode niets.
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): this
Parameters
- destination
-
WritableStream
Optionele specifieke stroom om uit te voeren
Retouren
this
unshift(any, BufferEncoding)
Als signaal het einde van de stroom (EOF) doorgeven chunknull en gedraagt zich hetzelfde als readable.push(null), waarna geen gegevens meer kunnen worden geschreven. Het EOF-signaal wordt aan het einde van de buffer geplaatst en alle gebufferde data wordt nog steeds verwijderd.
De readable.unshift() methode duwt een stuk data terug in de interne buffer. Dit is nuttig in bepaalde situaties waarin een stream wordt verbruikt door code die een bepaalde hoeveelheid data moet "on-consumeren" die hij optimistisch uit de bron heeft gehaald, zodat de data aan een andere partij kan worden doorgegeven.
De stream.unshift(chunk) methode kan niet worden aangeroepen nadat het 'end' event is verzonden, anders wordt er een runtime-fout gegooid.
Ontwikkelaars die vaak gebruiken stream.unshift() , zouden moeten overwegen om over te stappen op het gebruik van een Transform stream. Zie de API for stream implementers sectie voor meer informatie.
// 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;
}
}
}
In tegenstelling tot pushstream.unshift(chunk) zal het leesproces niet worden beëindigd door de interne leestoestand van de stream te resetten.
Dit kan onverwachte resultaten veroorzaken als readable.unshift() deze wordt aangeroepen tijdens een read (bijvoorbeeld vanuit een _read implementatie op een aangepaste stream). Door de call direct readable.unshift()te volgen reset je de leestoestand correct, maar het is het beste om het oproepen readable.unshift() tijdens het lezen te vermijden.
function unshift(chunk: any, encoding?: BufferEncoding)
Parameters
- chunk
-
any
Een stuk data om terug te schakelen naar de leeswachtrij. Voor streams die niet in objectmodus werken, chunk moet het een {string}, {Buffer}, {TypedArray}, {DataView} of null. Voor objectmodusstromen chunk kan elke JavaScript-waarde zijn.
- encoding
-
BufferEncoding
Codering van string-chunks. Moet een geldige Buffer codering zijn, zoals 'utf8' of 'ascii'.
wrap(ReadableStream)
Voor Node.js 0.10 implementeerden streams niet de volledige node:stream module API zoals die nu is gedefinieerd. (Zie Compatibility voor meer informatie.)
Wanneer je een oudere Node.js bibliotheek gebruikt die gebeurtenissen genereert 'data' en een pauzemethode heeft die alleen adviserend is, kan deze readable.wrap() methode worden gebruikt om een Readable stroom te creëren die de oude stroom als databron gebruikt.
Het zal zelden nodig zijn om te gebruiken readable.wrap() , maar de methode is geboden als een gemak voor interactie met oudere Node.js applicaties en bibliotheken.
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): this
Parameters
- stream
-
ReadableStream
Een "old style" leesbare stream
Retouren
this
[asyncDispose]()
Belt met een AbortError en readable.destroy() geeft een belofte terug die wordt nagekomen wanneer de stream is afgerond.
function [asyncDispose](): Promise<void>
Retouren
Promise<void>
[asyncIterator]()
function [asyncIterator](): AsyncIterator<any>
Retouren
AsyncIterator<any>
AsyncIterator om de stroom volledig te consumeren.
[toAsyncStreamable]()
Wanneer de --experimental-stream-iter vlag is ingeschakeld, Readable implementeren streams het Stream.toAsyncStreamable protocol, waardoor efficiënt gebruik door de stream/iter API mogelijk wordt.
Dit levert een batchgesynchroniseerde asynchrone iterator die de interne buffer van de stream in Uint8Array[] batches afvoert, waarbij de per-chunk Promise-overhead van het standaardpad Symbol.asyncIterator wordt geamortiseerd. Voor byte-mode streams worden chunks direct als Buffer instanties opgeleverd (die subklassen zijn Uint8Array ).
Voor objectmodus- of gecodeerde stromen wordt elk chunk genormaliseerd naar Uint8Array vóór batching.
De teruggestuurde iterator wordt getagd als een gevalideerde bron, zodat from() deze zonder extra normalisatie doorgaat.
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'
Zonder de --experimental-stream-iter vlag gooit ERR_STREAM_ITER_MISSING_FLAGhet aanroepen van deze methode .
function [toAsyncStreamable](): ByteReadableStream
Retouren
ByteReadableStream
Details overgenomen methode
eventNames()
Retourneert een matrix met de gebeurtenissen waarvoor de emitter listeners heeft geregistreerd.
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)[]
Retouren
(string | symbol)[]
Geërfd van Stream.eventNames
getMaxListeners()
Retourneert de huidige maximum-listenerwaarde voor de EventEmitter die is ingesteld door emitter.setMaxListeners(n) of standaard ingesteld op events.defaultMaxListeners.
function getMaxListeners(): number
Retouren
number
Geërfd van Stream.getMaxListeners
pipe<T>(T, PipeOptions)
function pipe<T>(destination: T, options?: PipeOptions): T
Parameters
- destination
-
T
- options
-
PipeOptions
Retouren
T
Geërfd van Stream.pipe
setMaxListeners(number)
Standaard worden EventEmitters een waarschuwing afgedrukt als er meer dan 10 listeners worden toegevoegd voor een bepaalde gebeurtenis. Dit is een nuttige standaardinstelling waarmee geheugenlekken kunnen worden gevonden. Met de methode emitter.setMaxListeners() kan de limiet voor dit specifieke EventEmitter exemplaar worden gewijzigd. De waarde kan worden ingesteld op Infinity (of 0) om een onbeperkt aantal listeners aan te geven.
Retourneert een verwijzing naar de EventEmitter, zodat aanroepen kunnen worden gekoppeld.
function setMaxListeners(n: number): this
Parameters
- n
-
number
Retouren
this
Geërfd van Stream.setMaxListeners
[captureRejectionSymbol](Error, string | symbol, any[])
De Symbol.for('nodejs.rejection') methode wordt aangeroepen voor het geval een belofteafwijzing plaatsvindt bij het uitzenden van een gebeurtenis en captureRejections wordt ingeschakeld op de emitter.
Het is mogelijk om in plaats van events.captureRejectionSymbolte gebruikenSymbol.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[])
Parameters
- error
-
Error
- event
-
string | symbol
- args
-
any[]
Geërfd van Stream. [captureReweianceSymbool]