Dela via


NodeJSReadableStream interface

En Node.js läsbar ström som också har en destroy metod.

Extends

ReadableStream

Ärvda egenskaper

readable

Metoder

destroy(Error)

Förstör strömmen. Du kan också generera en "felhändelse" och generera en "close"-händelse (såvida inte emitClose är inställt på false). Efter det här anropet släpps interna resurser.

Ärvda metoder

addListener<K>(string | symbol, (args: any[]) => void)

Alias för emitter.on(eventName, listener).

emit<K>(string | symbol, AnyRest)

Anropar synkront var och en av lyssnarna som registrerats för händelsen med namnet eventName, i den ordning de registrerades och skickar de angivna argumenten till var och en.

Returnerar true om händelsen hade lyssnare, false annars.

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
eventNames()

Returnerar en matris som visar de händelser som sändaren har registrerade lyssnare för. Värdena i matrisen är strängar eller Symbols.

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) ]
getMaxListeners()

Returnerar det aktuella maximala lyssnarvärdet för EventEmitter som antingen anges av emitter.setMaxListeners(n) eller som standard till <xref:EventEmitter.defaultMaxListeners>.

isPaused()
listenerCount<K>(string | symbol, Function)

Returnerar antalet lyssnare som lyssnar efter händelsen med namnet eventName. Om listener anges returneras hur många gånger lyssnaren finns i listan över lyssnarna för händelsen.

listeners<K>(string | symbol)

Returnerar en kopia av matrisen med lyssnare för händelsen med namnet eventName.

server.on('connection', (stream) => {
  console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
off<K>(string | symbol, (args: any[]) => void)

Alias för emitter.removeListener().

on<K>(string | symbol, (args: any[]) => void)

Lägger till funktionen listener i slutet av lyssnarmatrisen för händelsen med namnet eventName. Inga kontroller görs för att se om listener redan har lagts till. Flera anrop som skickar samma kombination av eventName och listener resulterar i att listener läggs till och anropas flera gånger.

server.on('connection', (stream) => {
  console.log('someone connected!');
});

Returnerar en referens till EventEmitter, så att anrop kan länkas.

Som standard anropas händelselyssnare i den ordning de läggs till. Metoden emitter.prependListener() kan användas som ett alternativ för att lägga till händelselyssnaren i början av lyssnarmatrisen.

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
once<K>(string | symbol, (args: any[]) => void)

Lägger till en engångsfunktion förlistener för händelsen med namnet eventName. Nästa gång eventName utlöses tas lyssnaren bort och anropas sedan.

server.once('connection', (stream) => {
  console.log('Ah, we have our first user!');
});

Returnerar en referens till EventEmitter, så att anrop kan länkas.

Som standard anropas händelselyssnare i den ordning de läggs till. Metoden emitter.prependOnceListener() kan användas som ett alternativ för att lägga till händelselyssnaren i början av lyssnarmatrisen.

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
pause()
pipe<T>(T, { end?: boolean })
prependListener<K>(string | symbol, (args: any[]) => void)

Lägger till funktionen listener i början av lyssnarmatrisen för händelsen med namnet eventName. Inga kontroller görs för att se om listener redan har lagts till. Flera anrop som skickar samma kombination av eventName och listener resulterar i att listener läggs till och anropas flera gånger.

server.prependListener('connection', (stream) => {
  console.log('someone connected!');
});

Returnerar en referens till EventEmitter, så att anrop kan länkas.

prependOnceListener<K>(string | symbol, (args: any[]) => void)

Lägger till en engångsfunktion förlistener för händelsen med namnet eventName till början av lyssnarmatrisen. Nästa gång eventName utlöses tas lyssnaren bort och anropas sedan.

server.prependOnceListener('connection', (stream) => {
  console.log('Ah, we have our first user!');
});

Returnerar en referens till EventEmitter, så att anrop kan länkas.

rawListeners<K>(string | symbol)

Returnerar en kopia av matrisen med lyssnare för händelsen med namnet eventName, inklusive eventuella omslutningar (till exempel de som skapats av .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');
read(number)
removeAllListeners(string | symbol)

Tar bort alla lyssnare eller de som anges eventName.

Det är dålig praxis att ta bort lyssnare som lagts till någon annanstans i koden, särskilt när den EventEmitter instansen skapades av någon annan komponent eller modul (t.ex. sockets eller filströmmar).

Returnerar en referens till EventEmitter, så att anrop kan länkas.

removeListener<K>(string | symbol, (args: any[]) => void)

Tar bort den angivna listener från lyssnarmatrisen för händelsen med namnet eventName.

const callback = (stream) => {
  console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);

removeListener() tar högst bort en instans av en lyssnare från lyssnarmatrisen. Om en enskild lyssnare har lagts till flera gånger i lyssnarmatrisen för den angivna eventNamemåste removeListener() anropas flera gånger för att ta bort varje instans.

När en händelse har genererats anropas alla lyssnare som är anslutna till den vid tidpunkten för avsändande i ordning. Detta innebär att alla removeListener()- eller removeAllListeners()-anrop efter avger och innan den senaste lyssnaren slutför körningen inte tar bort dem frånemit() pågår. Efterföljande händelser fungerar som förväntat.

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

Eftersom lyssnare hanteras med hjälp av en intern matris ändras positionsindexen för alla lyssnare som registrerats när lyssnaren tas bort. Detta påverkar inte i vilken ordning lyssnare anropas, men det innebär att alla kopior av lyssnarmatrisen som returneras av metoden emitter.listeners() måste återskapas.

När en enskild funktion har lagts till som hanterare flera gånger för en enskild händelse (som i exemplet nedan) tar removeListener() bort den senast tillagda instansen. I exemplet tas once('ping') lyssnaren bort:

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');

Returnerar en referens till EventEmitter, så att anrop kan länkas.

resume()
setEncoding(BufferEncoding)
setMaxListeners(number)

Som standard skriver EventEmitterut en varning om fler än 10 lyssnare läggs till för en viss händelse. Det här är ett användbart standardvärde som hjälper dig att hitta minnesläckor. Med metoden emitter.setMaxListeners() kan gränsen ändras för den här specifika EventEmitter instansen. Värdet kan anges till Infinity (eller 0) för att ange ett obegränsat antal lyssnare.

Returnerar en referens till EventEmitter, så att anrop kan länkas.

unpipe(WritableStream)
unshift(string | Uint8Array, BufferEncoding)
wrap(ReadableStream)
[asyncIterator]()
[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)

Information om ärvda egenskaper

readable

readable: boolean

Egenskapsvärde

boolean

Ärvd från NodeJS.ReadableStream.readable

Metodinformation

destroy(Error)

Förstör strömmen. Du kan också generera en "felhändelse" och generera en "close"-händelse (såvida inte emitClose är inställt på false). Efter det här anropet släpps interna resurser.

function destroy(error?: Error)

Parametrar

error

Error

Ärvd metodinformation

addListener<K>(string | symbol, (args: any[]) => void)

Alias för emitter.on(eventName, listener).

function addListener<K>(eventName: string | symbol, listener: (args: any[]) => void): NodeJSReadableStream

Parametrar

eventName

string | symbol

listener

(args: any[]) => void

Returer

Ärvd från NodeJS.ReadableStream.addListener

emit<K>(string | symbol, AnyRest)

Anropar synkront var och en av lyssnarna som registrerats för händelsen med namnet eventName, i den ordning de registrerades och skickar de angivna argumenten till var och en.

Returnerar true om händelsen hade lyssnare, false annars.

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<K>(eventName: string | symbol, args: AnyRest): boolean

Parametrar

eventName

string | symbol

args

AnyRest

Returer

boolean

Ärvd från NodeJS.ReadableStream.emit

eventNames()

Returnerar en matris som visar de händelser som sändaren har registrerade lyssnare för. Värdena i matrisen är strängar eller Symbols.

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)[]

Returer

(string | symbol)[]

Ärvd från NodeJS.ReadableStream.eventNames

getMaxListeners()

Returnerar det aktuella maximala lyssnarvärdet för EventEmitter som antingen anges av emitter.setMaxListeners(n) eller som standard till <xref:EventEmitter.defaultMaxListeners>.

function getMaxListeners(): number

Returer

number

Ärvd från NodeJS.ReadableStream.getMaxListeners

isPaused()

function isPaused(): boolean

Returer

boolean

Ärvd från NodeJS.ReadableStream.isPaused

listenerCount<K>(string | symbol, Function)

Returnerar antalet lyssnare som lyssnar efter händelsen med namnet eventName. Om listener anges returneras hur många gånger lyssnaren finns i listan över lyssnarna för händelsen.

function listenerCount<K>(eventName: string | symbol, listener?: Function): number

Parametrar

eventName

string | symbol

Namnet på händelsen som lyssnas efter

listener

Function

Händelsehanterarfunktionen

Returer

number

Ärvd från NodeJS.ReadableStream.listenerCount

listeners<K>(string | symbol)

Returnerar en kopia av matrisen med lyssnare för händelsen med namnet eventName.

server.on('connection', (stream) => {
  console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
function listeners<K>(eventName: string | symbol): Function[]

Parametrar

eventName

string | symbol

Returer

Function[]

Ärvd från NodeJS.ReadableStream.listeners

off<K>(string | symbol, (args: any[]) => void)

Alias för emitter.removeListener().

function off<K>(eventName: string | symbol, listener: (args: any[]) => void): NodeJSReadableStream

Parametrar

eventName

string | symbol

listener

(args: any[]) => void

Returer

Ärvd från NodeJS.ReadableStream.off

on<K>(string | symbol, (args: any[]) => void)

Lägger till funktionen listener i slutet av lyssnarmatrisen för händelsen med namnet eventName. Inga kontroller görs för att se om listener redan har lagts till. Flera anrop som skickar samma kombination av eventName och listener resulterar i att listener läggs till och anropas flera gånger.

server.on('connection', (stream) => {
  console.log('someone connected!');
});

Returnerar en referens till EventEmitter, så att anrop kan länkas.

Som standard anropas händelselyssnare i den ordning de läggs till. Metoden emitter.prependListener() kan användas som ett alternativ för att lägga till händelselyssnaren i början av lyssnarmatrisen.

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<K>(eventName: string | symbol, listener: (args: any[]) => void): NodeJSReadableStream

Parametrar

eventName

string | symbol

Namnet på händelsen.

listener

(args: any[]) => void

Återanropsfunktionen

Returer

Ärvd från NodeJS.ReadableStream.on

once<K>(string | symbol, (args: any[]) => void)

Lägger till en engångsfunktion förlistener för händelsen med namnet eventName. Nästa gång eventName utlöses tas lyssnaren bort och anropas sedan.

server.once('connection', (stream) => {
  console.log('Ah, we have our first user!');
});

Returnerar en referens till EventEmitter, så att anrop kan länkas.

Som standard anropas händelselyssnare i den ordning de läggs till. Metoden emitter.prependOnceListener() kan användas som ett alternativ för att lägga till händelselyssnaren i början av lyssnarmatrisen.

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<K>(eventName: string | symbol, listener: (args: any[]) => void): NodeJSReadableStream

Parametrar

eventName

string | symbol

Namnet på händelsen.

listener

(args: any[]) => void

Återanropsfunktionen

Returer

Ärvd från NodeJS.ReadableStream.once

pause()

function pause(): NodeJSReadableStream

Returer

Ärvd från NodeJS.ReadableStream.pause

pipe<T>(T, { end?: boolean })

function pipe<T>(destination: T, options?: { end?: boolean }): T

Parametrar

destination

T

options

{ end?: boolean }

Returer

T

Ärvd från NodeJS.ReadableStream.pipe

prependListener<K>(string | symbol, (args: any[]) => void)

Lägger till funktionen listener i början av lyssnarmatrisen för händelsen med namnet eventName. Inga kontroller görs för att se om listener redan har lagts till. Flera anrop som skickar samma kombination av eventName och listener resulterar i att listener läggs till och anropas flera gånger.

server.prependListener('connection', (stream) => {
  console.log('someone connected!');
});

Returnerar en referens till EventEmitter, så att anrop kan länkas.

function prependListener<K>(eventName: string | symbol, listener: (args: any[]) => void): NodeJSReadableStream

Parametrar

eventName

string | symbol

Namnet på händelsen.

listener

(args: any[]) => void

Återanropsfunktionen

Returer

Ärvd från NodeJS.ReadableStream.prependListener

prependOnceListener<K>(string | symbol, (args: any[]) => void)

Lägger till en engångsfunktion förlistener för händelsen med namnet eventName till början av lyssnarmatrisen. Nästa gång eventName utlöses tas lyssnaren bort och anropas sedan.

server.prependOnceListener('connection', (stream) => {
  console.log('Ah, we have our first user!');
});

Returnerar en referens till EventEmitter, så att anrop kan länkas.

function prependOnceListener<K>(eventName: string | symbol, listener: (args: any[]) => void): NodeJSReadableStream

Parametrar

eventName

string | symbol

Namnet på händelsen.

listener

(args: any[]) => void

Återanropsfunktionen

Returer

Ärvd från NodeJS.ReadableStream.prependOnceListener

rawListeners<K>(string | symbol)

Returnerar en kopia av matrisen med lyssnare för händelsen med namnet eventName, inklusive eventuella omslutningar (till exempel de som skapats av .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<K>(eventName: string | symbol): Function[]

Parametrar

eventName

string | symbol

Returer

Function[]

Ärvd från NodeJS.ReadableStream.rawListeners

read(number)

function read(size?: number): string | Buffer

Parametrar

size

number

Returer

string | Buffer

Ärvd från NodeJS.ReadableStream.read

removeAllListeners(string | symbol)

Tar bort alla lyssnare eller de som anges eventName.

Det är dålig praxis att ta bort lyssnare som lagts till någon annanstans i koden, särskilt när den EventEmitter instansen skapades av någon annan komponent eller modul (t.ex. sockets eller filströmmar).

Returnerar en referens till EventEmitter, så att anrop kan länkas.

function removeAllListeners(eventName?: string | symbol): NodeJSReadableStream

Parametrar

eventName

string | symbol

Returer

Ärvd från NodeJS.ReadableStream.removeAllListeners

removeListener<K>(string | symbol, (args: any[]) => void)

Tar bort den angivna listener från lyssnarmatrisen för händelsen med namnet eventName.

const callback = (stream) => {
  console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);

removeListener() tar högst bort en instans av en lyssnare från lyssnarmatrisen. Om en enskild lyssnare har lagts till flera gånger i lyssnarmatrisen för den angivna eventNamemåste removeListener() anropas flera gånger för att ta bort varje instans.

När en händelse har genererats anropas alla lyssnare som är anslutna till den vid tidpunkten för avsändande i ordning. Detta innebär att alla removeListener()- eller removeAllListeners()-anrop efter avger och innan den senaste lyssnaren slutför körningen inte tar bort dem frånemit() pågår. Efterföljande händelser fungerar som förväntat.

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

Eftersom lyssnare hanteras med hjälp av en intern matris ändras positionsindexen för alla lyssnare som registrerats när lyssnaren tas bort. Detta påverkar inte i vilken ordning lyssnare anropas, men det innebär att alla kopior av lyssnarmatrisen som returneras av metoden emitter.listeners() måste återskapas.

När en enskild funktion har lagts till som hanterare flera gånger för en enskild händelse (som i exemplet nedan) tar removeListener() bort den senast tillagda instansen. I exemplet tas once('ping') lyssnaren bort:

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');

Returnerar en referens till EventEmitter, så att anrop kan länkas.

function removeListener<K>(eventName: string | symbol, listener: (args: any[]) => void): NodeJSReadableStream

Parametrar

eventName

string | symbol

listener

(args: any[]) => void

Returer

Ärvd från NodeJS.ReadableStream.removeListener

resume()

function resume(): NodeJSReadableStream

Returer

Ärvd från NodeJS.ReadableStream.resume

setEncoding(BufferEncoding)

function setEncoding(encoding: BufferEncoding): NodeJSReadableStream

Parametrar

encoding

BufferEncoding

Returer

Ärvd från NodeJS.ReadableStream.setEncoding

setMaxListeners(number)

Som standard skriver EventEmitterut en varning om fler än 10 lyssnare läggs till för en viss händelse. Det här är ett användbart standardvärde som hjälper dig att hitta minnesläckor. Med metoden emitter.setMaxListeners() kan gränsen ändras för den här specifika EventEmitter instansen. Värdet kan anges till Infinity (eller 0) för att ange ett obegränsat antal lyssnare.

Returnerar en referens till EventEmitter, så att anrop kan länkas.

function setMaxListeners(n: number): NodeJSReadableStream

Parametrar

n

number

Returer

Ärvd från NodeJS.ReadableStream.setMaxListeners

unpipe(WritableStream)

function unpipe(destination?: WritableStream): NodeJSReadableStream

Parametrar

destination

WritableStream

Returer

Ärvd från NodeJS.ReadableStream.unpipe

unshift(string | Uint8Array, BufferEncoding)

function unshift(chunk: string | Uint8Array, encoding?: BufferEncoding)

Parametrar

chunk

string | Uint8Array

encoding

BufferEncoding

Ärvd från NodeJS.ReadableStream.unshift

wrap(ReadableStream)

function wrap(oldStream: ReadableStream): NodeJSReadableStream

Parametrar

oldStream

ReadableStream

Returer

Ärvd från NodeJS.ReadableStream.wrap

[asyncIterator]()

function [asyncIterator](): AsyncIterableIterator<string | Buffer>

Returer

AsyncIterableIterator<string | Buffer>

Ärvd från NodeJS.ReadableStream.__@asyncIterator@163

[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)

function [captureRejectionSymbol]<K>(error: Error, event: string | symbol, args: AnyRest)

Parametrar

error

Error

event

string | symbol

args

AnyRest

Ärvd från NodeJS.ReadableStream.__@captureRejectionSymbol@180