Global objects#
These objects are available in all modules. The following variables may appear
to be global but are not. They exist only in the scope of modules, see the
module system documentation:
The objects listed here are specific to Node.js. There are built-in objects
that are part of the JavaScript language itself, which are also globally
accessible.
Class: AbortController
#
A utility class used to signal cancelation in selected Promise
-based APIs.
The API is based on the Web API AbortController
.
const ac = new AbortController();
ac.signal.addEventListener('abort', () => console.log('Aborted!'),
{ once: true });
ac.abort();
console.log(ac.signal.aborted);
abortController.abort([reason])
#
reason
<any> An optional reason, retrievable on the AbortSignal
's
reason
property.
Triggers the abort signal, causing the abortController.signal
to emit
the 'abort'
event.
abortController.signal
#
Added in: v15.0.0
Class: AbortSignal
#
Added in: v15.0.0
The AbortSignal
is used to notify observers when the
abortController.abort()
method is called.
Static method: AbortSignal.abort([reason])
#
Returns a new already aborted AbortSignal
.
Static method: AbortSignal.timeout(delay)
#
Added in: v16.14.0
delay
<number> The number of milliseconds to wait before triggering
the AbortSignal.
Returns a new AbortSignal
which will be aborted in delay
milliseconds.
Event: 'abort'
#
Added in: v15.0.0
The 'abort'
event is emitted when the abortController.abort()
method
is called. The callback is invoked with a single object argument with a
single type
property set to 'abort'
:
const ac = new AbortController();
ac.signal.onabort = () => console.log('aborted!');
ac.signal.addEventListener('abort', (event) => {
console.log(event.type);
}, { once: true });
ac.abort();
The AbortController
with which the AbortSignal
is associated will only
ever trigger the 'abort'
event once. We recommended that code check
that the abortSignal.aborted
attribute is false
before adding an 'abort'
event listener.
Any event listeners attached to the AbortSignal
should use the
{ once: true }
option (or, if using the EventEmitter
APIs to attach a
listener, use the once()
method) to ensure that the event listener is
removed as soon as the 'abort'
event is handled. Failure to do so may
result in memory leaks.
abortSignal.aborted
#
Added in: v15.0.0
- Type: <boolean> True after the
AbortController
has been aborted.
abortSignal.onabort
#
Added in: v15.0.0
An optional callback function that may be set by user code to be notified
when the abortController.abort()
function has been called.
abortSignal.reason
#
Added in: v16.14.0
An optional reason specified when the AbortSignal
was triggered.
const ac = new AbortController();
ac.abort(new Error('boom!'));
console.log(ac.signal.reason);
abortSignal.throwIfAborted()
#
Added in: v16.17.0
If abortSignal.aborted
is true
, throws abortSignal.reason
.
Class: Buffer
#
Added in: v0.1.103
Used to handle binary data. See the buffer section.
__dirname
#
This variable may appear to be global but is not. See __dirname
.
__filename
#
This variable may appear to be global but is not. See __filename
.
console
#
Added in: v0.1.100
Used to print to stdout and stderr. See the console
section.
Crypto
#
Added in: v16.15.0
A browser-compatible implementation of <Crypto>. This global is available
only if the Node.js binary was compiled with including support for the
node:crypto
module.
crypto
#
Added in: v16.15.0
A browser-compatible implementation of the Web Crypto API.
CryptoKey
#
Added in: v16.15.0
A browser-compatible implementation of <CryptoKey>. This global is available
only if the Node.js binary was compiled with including support for the
node:crypto
module.
exports
#
This variable may appear to be global but is not. See exports
.
fetch
#
Added in: v16.15.0
A browser-compatible implementation of the fetch()
function.
Class FormData
#
Added in: v16.15.0
A browser-compatible implementation of <FormData>.
global
#
Added in: v0.1.27
In browsers, the top-level scope is the global scope. This means that
within the browser var something
will define a new global variable. In
Node.js this is different. The top-level scope is not the global scope;
var something
inside a Node.js module will be local to that module.
Class Headers
Added in: v16.15.0
A browser-compatible implementation of <Headers>.
MessageChannel
#
Added in: v15.0.0
The MessageChannel
class. See MessageChannel
for more details.
MessageEvent
#
Added in: v15.0.0
The MessageEvent
class. See MessageEvent
for more details.
MessagePort
#
Added in: v15.0.0
The MessagePort
class. See MessagePort
for more details.
module
#
This variable may appear to be global but is not. See module
.
process
#
Added in: v0.1.7
The process object. See the process
object section.
queueMicrotask(callback)
#
Added in: v11.0.0
The queueMicrotask()
method queues a microtask to invoke callback
. If
callback
throws an exception, the process
object 'uncaughtException'
event will be emitted.
The microtask queue is managed by V8 and may be used in a similar manner to
the process.nextTick()
queue, which is managed by Node.js. The
process.nextTick()
queue is always processed before the microtask queue
within each turn of the Node.js event loop.
DataHandler.prototype.load = async function load(key) {
const hit = this._cache.get(key);
if (hit !== undefined) {
queueMicrotask(() => {
this.emit('load', hit);
});
return;
}
const data = await fetchData(key);
this._cache.set(key, data);
this.emit('load', data);
};
require()
#
This variable may appear to be global but is not. See require()
.
Response
#
Added in: v16.15.0
A browser-compatible implementation of <Response>.
Request
#
Added in: v16.15.0
A browser-compatible implementation of <Request>.
setImmediate(callback[, ...args])
#
Added in: v0.9.1
setImmediate
is described in the timers section.
setInterval(callback, delay[, ...args])
#
Added in: v0.0.1
setInterval
is described in the timers section.
setTimeout(callback, delay[, ...args])
#
Added in: v0.0.1
setTimeout
is described in the timers section.
SubtleCrypto
#
Added in: v16.15.0
A browser-compatible implementation of <SubtleCrypto>. This global is available
only if the Node.js binary was compiled with including support for the
node:crypto
module.
TextDecoder
#
Added in: v11.0.0
The WHATWG TextDecoder
class. See the TextDecoder
section.
TextEncoder
#
Added in: v11.0.0
The WHATWG TextEncoder
class. See the TextEncoder
section.
URL
#
Added in: v10.0.0
The WHATWG URL
class. See the URL
section.
URLSearchParams
#
Added in: v10.0.0
The WHATWG URLSearchParams
class. See the URLSearchParams
section.