Skip to content

Class: Queue<D, R> ​

Defined in: glide-mq/src/queue.ts:278

Queue manages job submission, retrieval, scheduling, and lifecycle operations. Connects to Valkey/Redis and uses server-side functions for atomic operations.

Extends ​

  • EventEmitter

Type Parameters ​

Type ParameterDefault type
Dany
Rany

Constructors ​

Constructor ​

ts
new Queue<D, R>(name, opts): Queue<D, R>;

Defined in: glide-mq/src/queue.ts:300

Parameters ​

ParameterType
namestring
optsQueueOptions

Returns ​

Queue<D, R>

Overrides ​

EventEmitter.constructor

Properties ​

name ​

ts
readonly name: string;

Defined in: glide-mq/src/queue.ts:279


captureRejections ​

ts
static captureRejections: boolean;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:425

Value: boolean

Change the default captureRejections option on all new EventEmitter objects.

Since ​

v13.4.0, v12.16.0

Inherited from ​

EventEmitter.captureRejections


captureRejectionSymbol ​

ts
readonly static captureRejectionSymbol: typeof captureRejectionSymbol;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:418

Value: Symbol.for('nodejs.rejection')

See how to write a custom rejection handler.

Since ​

v13.4.0, v12.16.0

Inherited from ​

EventEmitter.captureRejectionSymbol


defaultMaxListeners ​

ts
static defaultMaxListeners: number;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:464

By default, a maximum of 10 listeners can be registered for any single event. This limit can be changed for individual EventEmitter instances using the emitter.setMaxListeners(n) method. To change the default for allEventEmitter instances, the events.defaultMaxListeners property can be used. If this value is not a positive number, a RangeError is thrown.

Take caution when setting the events.defaultMaxListeners because the change affects all EventEmitter instances, including those created before the change is made. However, calling emitter.setMaxListeners(n) still has precedence over events.defaultMaxListeners.

This is not a hard limit. The EventEmitter instance will allow more listeners to be added but will output a trace warning to stderr indicating that a "possible EventEmitter memory leak" has been detected. For any single EventEmitter, the emitter.getMaxListeners() and emitter.setMaxListeners() methods can be used to temporarily avoid this warning:

js
import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.setMaxListeners(emitter.getMaxListeners() + 1);
emitter.once('event', () => {
  // do stuff
  emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0));
});

The --trace-warnings command-line flag can be used to display the stack trace for such warnings.

The emitted warning can be inspected with process.on('warning') and will have the additional emitter, type, and count properties, referring to the event emitter instance, the event's name and the number of attached listeners, respectively. Its name property is set to 'MaxListenersExceededWarning'.

Since ​

v0.11.2

Inherited from ​

EventEmitter.defaultMaxListeners


errorMonitor ​

ts
readonly static errorMonitor: typeof errorMonitor;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:411

This symbol shall be used to install a listener for only monitoring 'error' events. Listeners installed using this symbol are called before the regular 'error' listeners are called.

Installing a listener using this symbol does not change the behavior once an 'error' event is emitted. Therefore, the process will still crash if no regular 'error' listener is installed.

Since ​

v13.6.0, v12.17.0

Inherited from ​

EventEmitter.errorMonitor

Methods ​

[captureRejectionSymbol]()? ​

ts
[captureRejectionSymbol]?<K>(
   error,
   event,
   ...args
): void;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:103

Type Parameters ​

Type Parameter
K

Parameters ​

ParameterType
errorError
eventstring | symbol
...argsAnyRest

Returns ​

void

Inherited from ​

EventEmitter.[captureRejectionSymbol]


add() ​

ts
add(
   name,
   data,
   opts?
): Promise<Job<D, R> | null>;

Defined in: glide-mq/src/queue.ts:747

Add a single job to the queue. Uses the glidemq_addJob server function to atomically create the job hash and enqueue it to the stream (or scheduled ZSet if delayed/prioritized).

Parameters ​

ParameterType
namestring
dataD
opts?JobOptions

Returns ​

Promise<Job<D, R> | null>


addAndWait() ​

ts
addAndWait(
   name,
   data,
   opts?
): Promise<R>;

Defined in: glide-mq/src/queue.ts:905

Add a job and wait for its completed/failed event using the queue events stream. Captures the current tail entry ID before enqueue so fast completions are not missed.

Parameters ​

ParameterType
namestring
dataD
opts?AddAndWaitOptions

Returns ​

Promise<R>


addBulk() ​

ts
addBulk(jobs): Promise<Job<D, R>[]>;

Defined in: glide-mq/src/queue.ts:982

Add multiple jobs to the queue in a pipeline. Uses GLIDE's Batch API to pipeline all addJob FCALL commands in a single round trip. Non-atomic: each job is independent, but all are sent together for efficiency.

Parameters ​

ParameterType
jobsobject[]

Returns ​

Promise<Job<D, R>[]>


addListener() ​

ts
addListener<K>(eventName, listener): this;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:642

Alias for emitter.on(eventName, listener).

Type Parameters ​

Type Parameter
K

Parameters ​

ParameterType
eventNamestring | symbol
listener(...args) => void

Returns ​

this

Since ​

v0.1.26

Inherited from ​

EventEmitter.addListener


clean() ​

ts
clean(
   grace,
   limit,
   type
): Promise&lt;string[]>;

Defined in: glide-mq/src/queue.ts:1676

Bulk-remove old completed or failed jobs by age.

Parameters ​

ParameterTypeDescription
gracenumberMinimum age in milliseconds. Jobs finished more recently than this are kept.
limitnumberMaximum number of jobs to remove in one call.
type"completed" | "failed"Which job state to clean: 'completed' or 'failed'.

Returns ​

Promise<string[]>

Array of removed job IDs.


close() ​

ts
close(): Promise&lt;void>;

Defined in: glide-mq/src/queue.ts:3106

Close the queue and release the underlying client connection. Idempotent: safe to call multiple times.

Returns ​

Promise<void>


count() ​

ts
count(): Promise&lt;number>;

Defined in: glide-mq/src/queue.ts:2159

Get the count of waiting jobs (stream length).

Returns ​

Promise<number>


createJobIndex() ​

ts
createJobIndex(opts?): Promise&lt;void>;

Defined in: glide-mq/src/queue.ts:2898

Create a Valkey Search index over job hashes for this queue. Auto-includes base fields: name (TAG), state (TAG), timestamp (NUMERIC), priority (NUMERIC).

The index uses a queue-specific prefix that uniquely matches this queue's job hashes. Requires the valkey-search module to be loaded on the server (standalone mode).

Parameters ​

ParameterType
opts?JobIndexOptions

Returns ​

Promise<void>


drain() ​

ts
drain(delayed?): Promise&lt;void>;

Defined in: glide-mq/src/queue.ts:1688

Drain the queue: remove all waiting jobs without touching active jobs. When delayed=true, also removes all delayed/scheduled jobs. Deletes associated job hashes and emits a 'drained' event.

Parameters ​

ParameterType
delayed?boolean

Returns ​

Promise<void>


dropJobIndex() ​

ts
dropJobIndex(name?): Promise&lt;void>;

Defined in: glide-mq/src/queue.ts:2972

Drop a Valkey Search index. Indexed document keys (job hashes) are not affected.

Parameters ​

ParameterType
name?string

Returns ​

Promise<void>


emit() ​

ts
emit<K>(eventName, ...args): boolean;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:904

Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

Returns true if the event had listeners, false otherwise.

js
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

Type Parameters ​

Type Parameter
K

Parameters ​

ParameterType
eventNamestring | symbol
...argsAnyRest

Returns ​

boolean

Since ​

v0.1.26

Inherited from ​

EventEmitter.emit


eventNames() ​

ts
eventNames(): (string | symbol)[];

Defined in: glide-mq/node_modules/@types/node/events.d.ts:967

Returns an array listing the events for which the emitter has registered listeners. The values in the array are strings or Symbols.

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

Returns ​

(string | symbol)[]

Since ​

v6.0.0

Inherited from ​

EventEmitter.eventNames


getDeadLetterJob() ​

ts
getDeadLetterJob(jobId, opts?): Promise<Job<D, R> | null>;

Defined in: glide-mq/src/queue.ts:2703

Retrieve a single job from the configured dead letter queue. Returns null when no DLQ is configured or the DLQ job does not exist.

Parameters ​

ParameterType
jobIdstring
opts?GetJobsOptions

Returns ​

Promise<Job<D, R> | null>


getDeadLetterJobs() ​

ts
getDeadLetterJobs(
   start?,
   end?,
   opts?
): Promise<Job<D, R>[]>;

Defined in: glide-mq/src/queue.ts:2632

Retrieve jobs from the dead letter queue configured for this queue. Returns an empty array if no DLQ is configured.

Parameters ​

ParameterTypeDefault valueDescription
start?number0Start index (default 0)
end?number-1End index (default -1, meaning all)
opts?GetJobsOptionsundefinedSet excludeData: true to omit data and returnvalue fields

Returns ​

Promise<Job<D, R>[]>


getFlowBudget() ​

ts
getFlowBudget(flowId): Promise<
  | {
  costUnit?: string;
  exceeded: boolean;
  maxCosts?: Record&lt;string, number>;
  maxTokens?: Record&lt;string, number>;
  maxTotalCost?: number;
  maxTotalTokens?: number;
  onExceeded: "fail" | "pause";
  tokenWeights?: Record&lt;string, number>;
  usedCost: number;
  usedTokens: number;
}
| null>;

Defined in: glide-mq/src/queue.ts:2340

Read the budget state for a flow. Returns null if no budget was set.

Parameters ​

ParameterType
flowIdstring

Returns ​

Promise< | { costUnit?: string; exceeded: boolean; maxCosts?: Record<string, number>; maxTokens?: Record<string, number>; maxTotalCost?: number; maxTotalTokens?: number; onExceeded: "fail" | "pause"; tokenWeights?: Record<string, number>; usedCost: number; usedTokens: number; } | null>


getFlowUsage() ​

ts
getFlowUsage(parentJobId): Promise<{
  costs: Record&lt;string, number>;
  costUnit?: string;
  jobCount: number;
  models: Record&lt;string, number>;
  tokens: Record&lt;string, number>;
  totalCost: number;
  totalTokens: number;
}>;

Defined in: glide-mq/src/queue.ts:2240

Aggregate AI usage metadata across a flow (parent + children). Walks the deps set of the parent job and sums token counts, cost, and model usage.

Parameters ​

ParameterType
parentJobIdstring

Returns ​

Promise<{ costs: Record<string, number>; costUnit?: string; jobCount: number; models: Record<string, number>; tokens: Record<string, number>; totalCost: number; totalTokens: number; }>


getGlobalRateLimit() ​

ts
getGlobalRateLimit(): Promise<RateLimitConfig | null>;

Defined in: glide-mq/src/queue.ts:1421

Get the current global rate limit for this queue. Returns null if no global rate limit is configured.

Returns ​

Promise<RateLimitConfig | null>


getJob() ​

ts
getJob(id, opts?): Promise<Job<D, R> | null>;

Defined in: glide-mq/src/queue.ts:1338

Retrieve a job by ID from the queue. Returns null if the job does not exist.

Parameters ​

ParameterTypeDescription
idstringThe job ID
opts?GetJobsOptionsSet excludeData: true to omit data and returnvalue fields

Returns ​

Promise<Job<D, R> | null>


getJobCountByTypes() ​

ts
getJobCountByTypes(): Promise<JobCounts>;

Defined in: glide-mq/src/queue.ts:2143

Get job counts by types. Alias for getJobCounts().

Returns ​

Promise<JobCounts>


getJobCounts() ​

ts
getJobCounts(): Promise<JobCounts>;

Defined in: glide-mq/src/queue.ts:1716

Get job counts by state.

  • waiting: stream length minus stream-active entries, plus LIFO and priority list lengths
  • active: stream PEL count (XPENDING) plus list-active counter
  • delayed: scheduled ZSet cardinality (includes both delayed and prioritized)
  • completed: completed ZSet cardinality
  • failed: failed ZSet cardinality

Returns ​

Promise<JobCounts>


getJobLogs() ​

ts
getJobLogs(
   id,
   start?,
   end?
): Promise<{
  count: number;
  logs: string[];
}>;

Defined in: glide-mq/src/queue.ts:2224

Retrieve log entries for a job by ID.

Parameters ​

ParameterTypeDefault value
idstringundefined
start?number0
end?number-1

Returns ​

Promise<{ count: number; logs: string[]; }>


getJobs() ​

ts
getJobs(
   type,
   start?,
   end?,
   opts?
): Promise<Job<D, R>[]>;

Defined in: glide-mq/src/queue.ts:1878

Retrieve jobs by state with optional pagination.

Parameters ​

ParameterTypeDefault valueDescription
type"completed" | "failed" | "delayed" | "active" | "waiting"undefinedThe job state to query
start?number0Start index for pagination (default 0)
end?number-1End index for pagination (default -1, meaning all)
opts?GetJobsOptionsundefinedSet excludeData: true to omit data and returnvalue fields

Returns ​

Promise<Job<D, R>[]>


getJobScheduler() ​

ts
getJobScheduler(name): Promise<SchedulerEntry | null>;

Defined in: glide-mq/src/queue.ts:2210

Get a single job scheduler entry by name. Returns null if no scheduler with that name exists or if stored data is malformed.

Parameters ​

ParameterType
namestring

Returns ​

Promise<SchedulerEntry | null>


getMaxListeners() ​

ts
getMaxListeners(): number;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:819

Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.

Returns ​

number

Since ​

v1.0.0

Inherited from ​

EventEmitter.getMaxListeners


getMetrics() ​

ts
getMetrics(type, opts?): Promise<Metrics>;

Defined in: glide-mq/src/queue.ts:1619

Get metrics for completed or failed jobs. Returns total count and per-minute time-series data points with throughput and avg duration.

Parameters ​

ParameterType
type"completed" | "failed"
opts?MetricsOptions

Returns ​

Promise<Metrics>


getRepeatableJobs() ​

ts
getRepeatableJobs(): Promise&lt;object[]>;

Defined in: glide-mq/src/queue.ts:2167

Get all registered job schedulers (repeatable jobs).

Returns ​

Promise<object[]>


getRepeatableJobsBounded() ​

ts
getRepeatableJobsBounded(maxEntries): Promise&lt;object[]>;

Defined in: glide-mq/src/queue.ts:2190

Get all registered job schedulers when their count does not exceed maxEntries. Unlike getRepeatableJobs(), this bounded inventory fails closed on excess or malformed persisted entries and checks the count/read atomically in Valkey.

Parameters ​

ParameterType
maxEntriesnumber

Returns ​

Promise<object[]>


getSuspendedJobs() ​

ts
getSuspendedJobs(
   start?,
   end?,
   opts?
): Promise<Job<D, R>[]>;

Defined in: glide-mq/src/queue.ts:2807

Retrieve jobs currently in the suspended state. Results are ordered by the suspended ZSet score (timeout deadline).

Parameters ​

ParameterTypeDefault value
start?number0
end?number-1
opts?GetJobsOptionsundefined

Returns ​

Promise<Job<D, R>[]>


getSuspendInfo() ​

ts
getSuspendInfo(jobId): Promise<
  | {
  reason?: string;
  signals: SignalEntry[];
  suspendedAt: number;
  timeout?: number;
}
| null>;

Defined in: glide-mq/src/queue.ts:2845

Get suspension information for a job. Returns null if the job is not in the suspended state.

Parameters ​

ParameterType
jobIdstring

Returns ​

Promise< | { reason?: string; signals: SignalEntry[]; suspendedAt: number; timeout?: number; } | null>


getUsageSummary() ​

ts
getUsageSummary(opts?): Promise<UsageSummary>;

Defined in: glide-mq/src/queue.ts:2474

Aggregate reported AI usage across queues for a rolling time window. Uses per-minute buckets recorded by job.reportUsage(), avoiding job-hash scans.

Parameters ​

ParameterType
opts?UsageSummaryOptions

Returns ​

Promise<UsageSummary>


getWorkers() ​

ts
getWorkers(): Promise<WorkerInfo[]>;

Defined in: glide-mq/src/queue.ts:1435

List all active workers for this queue. Workers register themselves with TTL-based keys; only live workers appear. Returns an array of WorkerInfo sorted by startedAt (oldest first).

Returns ​

Promise<WorkerInfo[]>


isPaused() ​

ts
isPaused(): Promise&lt;boolean>;

Defined in: glide-mq/src/queue.ts:2150

Check if the queue is paused.

Returns ​

Promise<boolean>


listenerCount() ​

ts
listenerCount<K>(eventName, listener?): number;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:913

Returns the number of listeners listening for the event named eventName. If listener is provided, it will return how many times the listener is found in the list of the listeners of the event.

Type Parameters ​

Type Parameter
K

Parameters ​

ParameterTypeDescription
eventNamestring | symbolThe name of the event being listened for
listener?FunctionThe event handler function

Returns ​

number

Since ​

v3.2.0

Inherited from ​

EventEmitter.listenerCount


listeners() ​

ts
listeners<K>(eventName): Function[];

Defined in: glide-mq/node_modules/@types/node/events.d.ts:832

Returns a copy of the array of listeners for the event named eventName.

js
server.on('connection', (stream) => {
  console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]

Type Parameters ​

Type Parameter
K

Parameters ​

ParameterType
eventNamestring | symbol

Returns ​

Function[]

Since ​

v0.1.26

Inherited from ​

EventEmitter.listeners


obliterate() ​

ts
obliterate(opts?): Promise&lt;void>;

Defined in: glide-mq/src/queue.ts:1759

Remove all data associated with this queue from the server. If force=false (default), fails if there are active jobs (stream PEL entries or active priority/LIFO list claims). If force=true, deletes everything regardless of active jobs.

Parameters ​

ParameterType
opts?{ force?: boolean; }
opts.force?boolean

Returns ​

Promise<void>


off() ​

ts
off<K>(eventName, listener): this;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:792

Alias for emitter.removeListener().

Type Parameters ​

Type Parameter
K

Parameters ​

ParameterType
eventNamestring | symbol
listener(...args) => void

Returns ​

this

Since ​

v10.0.0

Inherited from ​

EventEmitter.off


on() ​

ts
on<K>(eventName, listener): this;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:674

Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

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

Returns a reference to the EventEmitter, so that calls can be chained.

By default, event listeners are invoked in the order they are added. The emitter.prependListener() method can be used as an alternative to add the event listener to the beginning of the listeners array.

js
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

Type Parameters ​

Type Parameter
K

Parameters ​

ParameterTypeDescription
eventNamestring | symbolThe name of the event.
listener(...args) => voidThe callback function

Returns ​

this

Since ​

v0.1.101

Inherited from ​

EventEmitter.on


once() ​

ts
once<K>(eventName, listener): this;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:704

Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

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

Returns a reference to the EventEmitter, so that calls can be chained.

By default, event listeners are invoked in the order they are added. The emitter.prependOnceListener() method can be used as an alternative to add the event listener to the beginning of the listeners array.

js
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

Type Parameters ​

Type Parameter
K

Parameters ​

ParameterTypeDescription
eventNamestring | symbolThe name of the event.
listener(...args) => voidThe callback function

Returns ​

this

Since ​

v0.3.0

Inherited from ​

EventEmitter.once


pause() ​

ts
pause(): Promise&lt;void>;

Defined in: glide-mq/src/queue.ts:1357

Pause the queue. Workers will stop picking up new jobs.

Returns ​

Promise<void>


prependListener() ​

ts
prependListener<K>(eventName, listener): this;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:931

Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

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

Returns a reference to the EventEmitter, so that calls can be chained.

Type Parameters ​

Type Parameter
K

Parameters ​

ParameterTypeDescription
eventNamestring | symbolThe name of the event.
listener(...args) => voidThe callback function

Returns ​

this

Since ​

v6.0.0

Inherited from ​

EventEmitter.prependListener


prependOnceListener() ​

ts
prependOnceListener<K>(eventName, listener): this;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:947

Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

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

Returns a reference to the EventEmitter, so that calls can be chained.

Type Parameters ​

Type Parameter
K

Parameters ​

ParameterTypeDescription
eventNamestring | symbolThe name of the event.
listener(...args) => voidThe callback function

Returns ​

this

Since ​

v6.0.0

Inherited from ​

EventEmitter.prependOnceListener


rateLimitGroup() ​

ts
rateLimitGroup(
   groupKey,
   duration,
   opts?
): Promise&lt;number>;

Defined in: glide-mq/src/queue.ts:2822

Rate-limit a specific ordering group from outside the worker processor. Registers the group in the ratelimited ZADD - the scheduler will unblock it after duration. Any in-flight job for the group continues; new activations are blocked until resumeAt.

Parameters ​

ParameterType
groupKeystring
durationnumber
opts?{ extend?: "max" | "replace"; }
opts.extend?"max" | "replace"

Returns ​

Promise<number>


rawListeners() ​

ts
rawListeners<K>(eventName): Function[];

Defined in: glide-mq/node_modules/@types/node/events.d.ts:863

Returns a copy of the array of listeners for the event named eventName, including any wrappers (such as those created by .once()).

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

Type Parameters ​

Type Parameter
K

Parameters ​

ParameterType
eventNamestring | symbol

Returns ​

Function[]

Since ​

v9.4.0

Inherited from ​

EventEmitter.rawListeners


readStream() ​

ts
readStream(jobId, opts?): Promise&lt;object[]>;

Defined in: glide-mq/src/queue.ts:2581

Read entries from a job's streaming channel. Uses XRANGE for non-blocking reads by default. When block is set and > 0, uses XREAD with BLOCK for long-polling. Pass lastId to resume from a known position.

Parameters ​

ParameterType
jobIdstring
opts?ReadStreamOptions

Returns ​

Promise<object[]>


removeAllListeners() ​

ts
removeAllListeners(eventName?): this;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:803

Removes all listeners, or those of the specified eventName.

It is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).

Returns a reference to the EventEmitter, so that calls can be chained.

Parameters ​

ParameterType
eventName?string | symbol

Returns ​

this

Since ​

v0.1.26

Inherited from ​

EventEmitter.removeAllListeners


removeDeadLetterJob() ​

ts
removeDeadLetterJob(jobId): Promise&lt;boolean>;

Defined in: glide-mq/src/queue.ts:2727

Remove a single job from the configured dead letter queue. Returns false when no DLQ is configured or the DLQ job does not exist.

Parameters ​

ParameterType
jobIdstring

Returns ​

Promise<boolean>


removeGlobalRateLimit() ​

ts
removeGlobalRateLimit(): Promise&lt;void>;

Defined in: glide-mq/src/queue.ts:1412

Remove the global rate limit for this queue. Workers fall back to their local WorkerOptions.limiter if configured.

Returns ​

Promise<void>


removeJobScheduler() ​

ts
removeJobScheduler(name): Promise&lt;void>;

Defined in: glide-mq/src/queue.ts:1605

Remove a job scheduler by name.

Parameters ​

ParameterType
namestring

Returns ​

Promise<void>


removeListener() ​

ts
removeListener<K>(eventName, listener): this;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:787

Removes the specified listener from the listener array for the event named eventName.

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

removeListener() will remove, at most, one instance of a listener from the listener array. If any single listener has been added multiple times to the listener array for the specified eventName, then removeListener() must be called multiple times to remove each instance.

Once an event is emitted, all listeners attached to it at the time of emitting are called in order. This implies that any removeListener() or removeAllListeners() calls after emitting and before the last listener finishes execution will not remove them fromemit() in progress. Subsequent events behave as expected.

js
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

Because listeners are managed using an internal array, calling this will change the position indices of any listener registered after the listener being removed. This will not impact the order in which listeners are called, but it means that any copies of the listener array as returned by the emitter.listeners() method will need to be recreated.

When a single function has been added as a handler multiple times for a single event (as in the example below), removeListener() will remove the most recently added instance. In the example the once('ping') listener is removed:

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

Returns a reference to the EventEmitter, so that calls can be chained.

Type Parameters ​

Type Parameter
K

Parameters ​

ParameterType
eventNamestring | symbol
listener(...args) => void

Returns ​

this

Since ​

v0.1.26

Inherited from ​

EventEmitter.removeListener


replayDeadLetterJob() ​

ts
replayDeadLetterJob(jobId): Promise<Job&lt;any, any> | null>;

Defined in: glide-mq/src/queue.ts:2744

Replay a job from the dead letter queue back to its original queue. Returns the newly added job, or null when the DLQ job does not exist.

Parameters ​

ParameterType
jobIdstring

Returns ​

Promise<Job<any, any> | null>


resume() ​

ts
resume(): Promise&lt;void>;

Defined in: glide-mq/src/queue.ts:1367

Resume the queue after a pause.

Returns ​

Promise<void>


retryJobs() ​

ts
retryJobs(opts?): Promise&lt;number>;

Defined in: glide-mq/src/queue.ts:1700

Bulk retry failed jobs. Moves jobs from the failed set to the scheduled ZSet (delayed state). Resets attemptsMade, failedReason, and finishedOn on each retried job.

Parameters ​

ParameterTypeDescription
opts?{ count?: number; }-
opts.count?numberMaximum number of jobs to retry. Omit or 0 to retry all.

Returns ​

Promise<number>

Number of jobs retried.


revoke() ​

ts
revoke(jobId): Promise&lt;string>;

Defined in: glide-mq/src/queue.ts:1379

Revoke a job by ID. If the job is waiting/delayed, it is immediately moved to the failed set with reason 'revoked'. If the job is currently being processed, a revoked flag is set on the hash - the worker will check this flag cooperatively and fire the AbortSignal. Returns 'revoked', 'flagged', or 'not_found'.

Parameters ​

ParameterType
jobIdstring

Returns ​

Promise<string>


searchJobs() ​

ts
searchJobs(opts): Promise<Job<D, R>[]>;

Defined in: glide-mq/src/queue.ts:1957

Search for jobs matching the given criteria. Supports filtering by state, name (exact match), and data fields (shallow key-value match). If state is provided, searches only within that state's data structure. If no state is provided, SCANs all job hashes matching the queue prefix. Default limit: 100.

Parameters ​

ParameterType
optsSearchJobsOptions

Returns ​

Promise<Job<D, R>[]>


setGlobalConcurrency() ​

ts
setGlobalConcurrency(n): Promise&lt;void>;

Defined in: glide-mq/src/queue.ts:1390

Set the global concurrency limit for this queue. When set, workers will not pick up new jobs if the total number of pending (active) jobs across all workers meets or exceeds this limit. Set to 0 to remove the limit.

Parameters ​

ParameterType
nnumber

Returns ​

Promise<void>


setGlobalRateLimit() ​

ts
setGlobalRateLimit(config): Promise&lt;void>;

Defined in: glide-mq/src/queue.ts:1400

Set a global rate limit for this queue. All workers will respect this limit dynamically (picked up within one scheduler tick). While set, it replaces WorkerOptions.limiter on every worker (the limits are not combined).

Parameters ​

ParameterType
configRateLimitConfig

Returns ​

Promise<void>


setMaxListeners() ​

ts
setMaxListeners(n): this;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:813

By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.

Returns a reference to the EventEmitter, so that calls can be chained.

Parameters ​

ParameterType
nnumber

Returns ​

this

Since ​

v0.3.5

Inherited from ​

EventEmitter.setMaxListeners


signal() ​

ts
signal(
   jobId,
   signalName,
   data?
): Promise&lt;boolean>;

Defined in: glide-mq/src/queue.ts:2834

Send a signal to a suspended job, resuming it. The job moves back to waiting state and re-enters the stream. Returns true if the job was resumed, false if it was not in suspended state.

Parameters ​

ParameterType
jobIdstring
signalNamestring
data?any

Returns ​

Promise<boolean>


updateFlowBudget() ​

ts
updateFlowBudget(flowId, limits): Promise<
  | {
  costUnit?: string;
  exceeded: boolean;
  maxCosts?: Record&lt;string, number>;
  maxTokens?: Record&lt;string, number>;
  maxTotalCost?: number;
  maxTotalTokens?: number;
  onExceeded: "fail" | "pause";
  tokenWeights?: Record&lt;string, number>;
  usedCost: number;
  usedTokens: number;
}
| null>;

Defined in: glide-mq/src/queue.ts:2381

Change the limits of a flow budget. Only the given fields change; null deletes a limit. The exceeded flag is re-evaluated against the usage already charged, so raising the limits above it resumes the flow: jobs paused by onExceeded 'pause' run at their next re-check (Worker.BUDGET_PAUSE_RECHECK_MS) or when promoted. Returns the new budget state, or null when the flow has no budget.

Parameters ​

ParameterType
flowIdstring
limits{ costUnit?: string | null; maxCosts?: Record<string, number> | null; maxTokens?: Record<string, number> | null; maxTotalCost?: number | null; maxTotalTokens?: number | null; onExceeded?: "fail" | "pause"; tokenWeights?: Record<string, number> | null; }
limits.costUnit?string | null
limits.maxCosts?Record<string, number> | null
limits.maxTokens?Record<string, number> | null
limits.maxTotalCost?number | null
limits.maxTotalTokens?number | null
limits.onExceeded?"fail" | "pause"
limits.tokenWeights?Record<string, number> | null

Returns ​

Promise< | { costUnit?: string; exceeded: boolean; maxCosts?: Record<string, number>; maxTokens?: Record<string, number>; maxTotalCost?: number; maxTotalTokens?: number; onExceeded: "fail" | "pause"; tokenWeights?: Record<string, number>; usedCost: number; usedTokens: number; } | null>


upsertJobScheduler() ​

ts
upsertJobScheduler(
   name,
   schedule,
   template?
): Promise&lt;void>;

Defined in: glide-mq/src/queue.ts:1487

Upsert a job scheduler (repeatable/cron job). Stores the scheduler config in the schedulers hash. Computes the initial nextRun based on the schedule.

Parameters ​

ParameterType
namestring
scheduleScheduleOpts
template?JobTemplate

Returns ​

Promise<void>


vectorSearch() ​

ts
vectorSearch(embedding, opts?): Promise<VectorSearchResult<D, R>[]>;

Defined in: glide-mq/src/queue.ts:2988

Search for jobs by vector similarity (KNN) using a Valkey Search index. Requires a prior call to createJobIndex with a vectorField configured.

The search is automatically scoped to this queue via the index prefix.

Parameters ​

ParameterTypeDescription
embeddingFloat32Array<ArrayBufferLike> | number[]The query vector (number[] or Float32Array).
opts?VectorSearchOptionsSearch options (index name, k, pre-filter, return fields, score field).

Returns ​

Promise<VectorSearchResult<D, R>[]>

Array of { job, score } sorted by similarity (best first).


addAbortListener() ​

ts
static addAbortListener(signal, resource): Disposable;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:403

Listens once to the abort event on the provided signal.

Listening to the abort event on abort signals is unsafe and may lead to resource leaks since another third party with the signal can call e.stopImmediatePropagation(). Unfortunately Node.js cannot change this since it would violate the web standard. Additionally, the original API makes it easy to forget to remove listeners.

This API allows safely using AbortSignals in Node.js APIs by solving these two issues by listening to the event such that stopImmediatePropagation does not prevent the listener from running.

Returns a disposable so that it may be unsubscribed from more easily.

js
import { addAbortListener } from 'node:events';

function example(signal) {
  let disposable;
  try {
    signal.addEventListener('abort', (e) => e.stopImmediatePropagation());
    disposable = addAbortListener(signal, (e) => {
      // Do something when signal is aborted.
    });
  } finally {
    disposable?.[Symbol.dispose]();
  }
}

Parameters ​

ParameterType
signalAbortSignal
resource(event) => void

Returns ​

Disposable

Disposable that removes the abort listener.

Since ​

v20.5.0

Inherited from ​

EventEmitter.addAbortListener


getEventListeners() ​

ts
static getEventListeners(emitter, name): Function[];

Defined in: glide-mq/node_modules/@types/node/events.d.ts:325

Returns a copy of the array of listeners for the event named eventName.

For EventEmitters this behaves exactly the same as calling .listeners on the emitter.

For EventTargets this is the only way to get the event listeners for the event target. This is useful for debugging and diagnostic purposes.

js
import { getEventListeners, EventEmitter } from 'node:events';

{
  const ee = new EventEmitter();
  const listener = () => console.log('Events are fun');
  ee.on('foo', listener);
  console.log(getEventListeners(ee, 'foo')); // [ [Function: listener] ]
}
{
  const et = new EventTarget();
  const listener = () => console.log('Events are fun');
  et.addEventListener('foo', listener);
  console.log(getEventListeners(et, 'foo')); // [ [Function: listener] ]
}

Parameters ​

ParameterType
emitterEventEmitter<DefaultEventMap> | EventTarget
namestring | symbol

Returns ​

Function[]

Since ​

v15.2.0, v14.17.0

Inherited from ​

EventEmitter.getEventListeners


getMaxListeners() ​

ts
static getMaxListeners(emitter): number;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:354

Returns the currently set max amount of listeners.

For EventEmitters this behaves exactly the same as calling .getMaxListeners on the emitter.

For EventTargets this is the only way to get the max event listeners for the event target. If the number of event handlers on a single EventTarget exceeds the max set, the EventTarget will print a warning.

js
import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events';

{
  const ee = new EventEmitter();
  console.log(getMaxListeners(ee)); // 10
  setMaxListeners(11, ee);
  console.log(getMaxListeners(ee)); // 11
}
{
  const et = new EventTarget();
  console.log(getMaxListeners(et)); // 10
  setMaxListeners(11, et);
  console.log(getMaxListeners(et)); // 11
}

Parameters ​

ParameterType
emitterEventEmitter<DefaultEventMap> | EventTarget

Returns ​

number

Since ​

v19.9.0

Inherited from ​

EventEmitter.getMaxListeners


getUsageSummary() ​

ts
static getUsageSummary(opts): Promise<UsageSummary>;

Defined in: glide-mq/src/queue.ts:2487

Aggregate reported AI usage across queues for a rolling time window. Pass either an existing client or connection options for a temporary client.

Parameters ​

ParameterType
optsUsageSummaryOptions & Pick<QueueOptions, "client" | "connection" | "prefix">

Returns ​

Promise<UsageSummary>


listenerCount() ​

ts
static listenerCount(emitter, eventName): number;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:297

A class method that returns the number of listeners for the given eventName registered on the given emitter.

js
import { EventEmitter, listenerCount } from 'node:events';

const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2

Parameters ​

ParameterTypeDescription
emitterEventEmitterThe emitter to query
eventNamestring | symbolThe event name

Returns ​

number

Since ​

v0.9.12

Deprecated ​

Since v3.2.0 - Use listenerCount instead.

Inherited from ​

EventEmitter.listenerCount


on() ​

Call Signature ​

ts
static on(
   emitter,
   eventName,
   options?
): AsyncIterator&lt;any[]>;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:270

js
import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
  ee.emit('foo', 'bar');
  ee.emit('foo', 42);
});

for await (const event of on(ee, 'foo')) {
  // The execution of this inner block is synchronous and it
  // processes one event at a time (even with await). Do not use
  // if concurrent execution is required.
  console.log(event); // prints ['bar'] [42]
}
// Unreachable here

Returns an AsyncIterator that iterates eventName events. It will throw if the EventEmitter emits 'error'. It removes all listeners when exiting the loop. The value returned by each iteration is an array composed of the emitted event arguments.

An AbortSignal can be used to cancel waiting on events:

js
import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ac = new AbortController();

(async () => {
  const ee = new EventEmitter();

  // Emit later on
  process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
  });

  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
  }
  // Unreachable here
})();

process.nextTick(() => ac.abort());

Use the close option to specify an array of event names that will end the iteration:

js
import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
  ee.emit('foo', 'bar');
  ee.emit('foo', 42);
  ee.emit('close');
});

for await (const event of on(ee, 'foo', { close: ['close'] })) {
  console.log(event); // prints ['bar'] [42]
}
// the loop will exit after 'close' is emitted
console.log('done'); // prints 'done'
Parameters ​
ParameterType
emitterEventEmitter
eventNamestring | symbol
options?StaticEventEmitterIteratorOptions
Returns ​

AsyncIterator<any[]>

An AsyncIterator that iterates eventName events emitted by the emitter

Since ​

v13.6.0, v12.16.0

Inherited from ​

EventEmitter.on

Call Signature ​

ts
static on(
   emitter,
   eventName,
   options?
): AsyncIterator&lt;any[]>;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:275

js
import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
  ee.emit('foo', 'bar');
  ee.emit('foo', 42);
});

for await (const event of on(ee, 'foo')) {
  // The execution of this inner block is synchronous and it
  // processes one event at a time (even with await). Do not use
  // if concurrent execution is required.
  console.log(event); // prints ['bar'] [42]
}
// Unreachable here

Returns an AsyncIterator that iterates eventName events. It will throw if the EventEmitter emits 'error'. It removes all listeners when exiting the loop. The value returned by each iteration is an array composed of the emitted event arguments.

An AbortSignal can be used to cancel waiting on events:

js
import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ac = new AbortController();

(async () => {
  const ee = new EventEmitter();

  // Emit later on
  process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
  });

  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
  }
  // Unreachable here
})();

process.nextTick(() => ac.abort());

Use the close option to specify an array of event names that will end the iteration:

js
import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
  ee.emit('foo', 'bar');
  ee.emit('foo', 42);
  ee.emit('close');
});

for await (const event of on(ee, 'foo', { close: ['close'] })) {
  console.log(event); // prints ['bar'] [42]
}
// the loop will exit after 'close' is emitted
console.log('done'); // prints 'done'
Parameters ​
ParameterType
emitterEventTarget
eventNamestring
options?StaticEventEmitterIteratorOptions
Returns ​

AsyncIterator<any[]>

An AsyncIterator that iterates eventName events emitted by the emitter

Since ​

v13.6.0, v12.16.0

Inherited from ​

EventEmitter.on


once() ​

Call Signature ​

ts
static once(
   emitter,
   eventName,
   options?
): Promise&lt;any[]>;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:184

Creates a Promise that is fulfilled when the EventEmitter emits the given event or that is rejected if the EventEmitter emits 'error' while waiting. The Promise will resolve with an array of all the arguments emitted to the given event.

This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event semantics and does not listen to the 'error' event.

js
import { once, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

process.nextTick(() => {
  ee.emit('myevent', 42);
});

const [value] = await once(ee, 'myevent');
console.log(value);

const err = new Error('kaboom');
process.nextTick(() => {
  ee.emit('error', err);
});

try {
  await once(ee, 'myevent');
} catch (err) {
  console.error('error happened', err);
}

The special handling of the 'error' event is only used when events.once() is used to wait for another event. If events.once() is used to wait for the 'error' event itself, then it is treated as any other kind of event without special handling:

js
import { EventEmitter, once } from 'node:events';

const ee = new EventEmitter();

once(ee, 'error')
  .then(([err]) => console.log('ok', err.message))
  .catch((err) => console.error('error', err.message));

ee.emit('error', new Error('boom'));

// Prints: ok boom

An AbortSignal can be used to cancel waiting for the event:

js
import { EventEmitter, once } from 'node:events';

const ee = new EventEmitter();
const ac = new AbortController();

async function foo(emitter, event, signal) {
  try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
  } catch (error) {
    if (error.name === 'AbortError') {
      console.error('Waiting for the event was canceled!');
    } else {
      console.error('There was an error', error.message);
    }
  }
}

foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!
Parameters ​
ParameterType
emitterEventEmitter
eventNamestring | symbol
options?StaticEventEmitterOptions
Returns ​

Promise<any[]>

Since ​

v11.13.0, v10.16.0

Inherited from ​

EventEmitter.once

Call Signature ​

ts
static once(
   emitter,
   eventName,
   options?
): Promise&lt;any[]>;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:189

Creates a Promise that is fulfilled when the EventEmitter emits the given event or that is rejected if the EventEmitter emits 'error' while waiting. The Promise will resolve with an array of all the arguments emitted to the given event.

This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event semantics and does not listen to the 'error' event.

js
import { once, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

process.nextTick(() => {
  ee.emit('myevent', 42);
});

const [value] = await once(ee, 'myevent');
console.log(value);

const err = new Error('kaboom');
process.nextTick(() => {
  ee.emit('error', err);
});

try {
  await once(ee, 'myevent');
} catch (err) {
  console.error('error happened', err);
}

The special handling of the 'error' event is only used when events.once() is used to wait for another event. If events.once() is used to wait for the 'error' event itself, then it is treated as any other kind of event without special handling:

js
import { EventEmitter, once } from 'node:events';

const ee = new EventEmitter();

once(ee, 'error')
  .then(([err]) => console.log('ok', err.message))
  .catch((err) => console.error('error', err.message));

ee.emit('error', new Error('boom'));

// Prints: ok boom

An AbortSignal can be used to cancel waiting for the event:

js
import { EventEmitter, once } from 'node:events';

const ee = new EventEmitter();
const ac = new AbortController();

async function foo(emitter, event, signal) {
  try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
  } catch (error) {
    if (error.name === 'AbortError') {
      console.error('Waiting for the event was canceled!');
    } else {
      console.error('There was an error', error.message);
    }
  }
}

foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!
Parameters ​
ParameterType
emitterEventTarget
eventNamestring
options?StaticEventEmitterOptions
Returns ​

Promise<any[]>

Since ​

v11.13.0, v10.16.0

Inherited from ​

EventEmitter.once


setMaxListeners() ​

ts
static setMaxListeners(n?, ...eventTargets): void;

Defined in: glide-mq/node_modules/@types/node/events.d.ts:369

js
import { setMaxListeners, EventEmitter } from 'node:events';

const target = new EventTarget();
const emitter = new EventEmitter();

setMaxListeners(5, target, emitter);

Parameters ​

ParameterTypeDescription
n?numberA non-negative number. The maximum number of listeners per EventTarget event.
...eventTargets?(EventEmitter<DefaultEventMap> | EventTarget)[]Zero or more {EventTarget} or {EventEmitter} instances. If none are specified, n is set as the default max for all newly created {EventTarget} and {EventEmitter} objects.

Returns ​

void

Since ​

v15.4.0

Inherited from ​

EventEmitter.setMaxListeners

Released under the Apache-2.0 License.