Spec-Zone.ru › Node.js 20 LTS

Глобальные объекты

Эти объекты доступны во всех модулях.

Следующие переменные могут показаться глобальными, но таковыми не являются. Они существуют только в области видимости модулей CommonJS:

  • __dirname
  • __filename
  • exports
  • module
  • require()

Перечисленные здесь объекты специфичны для Node.js. Существуют встроенные объекты, являющиеся частью самого языка JavaScript; они также доступны глобально.

Класс: AbortController

История
Версия Изменения
v15.4.0

Больше не является экспериментальным.

v15.0.0, v14.17.0

Добавлено в: v15.0.0, v14.17.0

Вспомогательный класс, используемый для отправки сигнала отмены в отдельных API на основе Promise. API основан на веб-API AbortController.

const ac = new AbortController();

ac.signal.addEventListener('abort', () => console.log('Aborted!'),
                           { once: true });

ac.abort();

console.log(ac.signal.aborted);  // Prints true copy

abortController.abort([reason])

История
Версия Изменения
v17.2.0, v16.14.0

Добавлен новый необязательный аргумент reason.

v15.0.0, v14.17.0

Добавлено в: v15.0.0, v14.17.0

  • reason <any> Необязательная причина, которую можно получить через свойство reason объекта AbortSignal.

Активирует сигнал отмены, вызывая генерацию события 'abort' объектом abortController.signal.

abortController.signal

Добавлено в: v15.0.0, v14.17.0
  • Тип: <AbortSignal>

Класс: AbortSignal

Добавлено в: v15.0.0, v14.17.0
  • Наследует: <EventTarget>

Объект AbortSignal используется для уведомления наблюдателей о вызове метода abortController.abort().

Статический метод: AbortSignal.abort([reason])
История
Версия Изменения
v17.2.0, v16.14.0

Добавлен новый необязательный аргумент reason.

v15.12.0, v14.17.0

Добавлено в: v15.12.0, v14.17.0

  • reason: <any>
  • Возвращает: <AbortSignal>

Возвращает новый уже отменённый объект AbortSignal.

Статический метод: AbortSignal.timeout(delay)
Добавлено в: v17.3.0, v16.14.0
  • delay <number> Количество миллисекунд ожидания перед активацией AbortSignal.

Возвращает новый объект AbortSignal, который будет отменён через delay миллисекунд.

Статический метод: AbortSignal.any(signals)
Добавлено в: v20.3.0
  • signals <AbortSignal[]> Объекты AbortSignal, из которых составляется новый объект AbortSignal.

Возвращает новый объект AbortSignal, который будет отменён, если будет отменён хотя бы один из переданных сигналов. Его abortSignal.reason будет установлен в значение того из объектов signals, который вызвал отмену.

Событие: 'abort'
Добавлено в: v15.0.0, v14.17.0

Событие 'abort' генерируется при вызове метода abortController.abort(). Функция обратного вызова вызывается с одним аргументом-объектом, у которого свойство type установлено в значение 'abort':

const ac = new AbortController();

// Use either the onabort property...
ac.signal.onabort = () => console.log('aborted!');

// Or the EventTarget API...
ac.signal.addEventListener('abort', (event) => {
  console.log(event.type);  // Prints 'abort'
}, { once: true });

ac.abort(); copy

Объект AbortController, с которым связан AbortSignal, генерирует событие 'abort' только один раз. Рекомендуется перед добавлением обработчика события 'abort' проверять, что атрибут abortSignal.aborted имеет значение false.

Обработчики событий, подключённые к объекту AbortSignal, должны использовать параметр { once: true } (или, если обработчик подключается с помощью API EventEmitter, использовать метод once()), чтобы обработчик события удалялся сразу после обработки события 'abort'. В противном случае возможны утечки памяти.

abortSignal.aborted
Добавлено в: v15.0.0, v14.17.0
  • Тип: <boolean> Значение true после отмены объекта AbortController.
abortSignal.onabort
Добавлено в: v15.0.0, v14.17.0
  • Тип: <Function>

Необязательная функция обратного вызова, которую пользовательский код может задать для получения уведомления о вызове функции abortController.abort().

abortSignal.reason
Добавлено в: v17.2.0, v16.14.0
  • Тип: <any>

Необязательная причина, указанная при активации AbortSignal.

const ac = new AbortController();
ac.abort(new Error('boom!'));
console.log(ac.signal.reason);  // Error: boom! copy
abortSignal.throwIfAborted()
Добавлено в: v17.3.0, v16.17.0

Если abortSignal.aborted имеет значение true, вызывает исключение abortSignal.reason.

Класс: Blob

Добавлено в: v18.0.0

См. <Blob>.

Класс: Buffer

Добавлено в: v0.1.103
  • <Function>

Используется для обработки двоичных данных. См. раздел о буферах.

Класс: ByteLengthQueuingStrategy

Добавлено в: v18.0.0
Стабильность: 1 — Экспериментальный.

Совместимая с браузерами реализация ByteLengthQueuingStrategy.

__dirname

Эта переменная может показаться глобальной, но таковой не является. См. __dirname.

__filename

Эта переменная может показаться глобальной, но таковой не является. См. __filename.

atob(data)

Добавлено в: v16.0.0
Стабильность: 3 — Устаревший. Вместо него используйте Buffer.from(data, 'base64').

Глобальный псевдоним для buffer.atob().

BroadcastChannel

Добавлено в: v18.0.0

См. <BroadcastChannel>.

btoa(data)

Добавлено в: v16.0.0
Стабильность: 3 — Устаревший. Вместо него используйте buf.toString('base64').

Глобальный псевдоним для buffer.btoa().

clearImmediate(immediateObject)

Добавлено в: v0.9.1

clearImmediate описан в разделе о таймерах.

clearInterval(intervalObject)

Добавлено в: v0.0.1

clearInterval описан в разделе о таймерах.

clearTimeout(timeoutObject)

Добавлено в: v0.0.1

clearTimeout описан в разделе о таймерах.

Класс: CompressionStream

Добавлено в: v18.0.0
Стабильность: 1 — Экспериментальный.

Совместимая с браузерами реализация CompressionStream.

console

Добавлено в: v0.1.100
  • <Object>

Используется для вывода в stdout и stderr. См. раздел console.

Класс: CountQueuingStrategy

Добавлено в: v18.0.0
Стабильность: 1 — Экспериментальный.

Совместимая с браузерами реализация CountQueuingStrategy.

Crypto

История
Версия Изменения
v19.0.0

Больше не требует флага командной строки --experimental-global-webcrypto.

v17.6.0, v16.15.0

Добавлено в: v17.6.0, v16.15.0

Стабильность: 1 — Экспериментальный. Отключите этот API с помощью флага командной строки --no-experimental-global-webcrypto.

Совместимая с браузерами реализация <Crypto>. Этот глобальный объект доступен только в том случае, если бинарный файл Node.js был собран с поддержкой модуля node:crypto.

crypto

История
Версия Изменения
v19.0.0

Больше не требует флага командной строки --experimental-global-webcrypto.

v17.6.0, v16.15.0

Добавлено в: v17.6.0, v16.15.0

Стабильность: 1 — Экспериментальный. Отключите этот API с помощью флага командной строки --no-experimental-global-webcrypto.

Совместимая с браузерами реализация Web Crypto API.

CryptoKey

История
Версия Изменения
v19.0.0

Больше не требует флага командной строки --experimental-global-webcrypto.

v17.6.0, v16.15.0

Добавлено в: v17.6.0, v16.15.0

Стабильность: 1 — Экспериментальный. Отключите этот API с помощью флага командной строки --no-experimental-global-webcrypto.

Совместимая с браузерами реализация <CryptoKey>. Этот глобальный объект доступен только в том случае, если бинарный файл Node.js был собран с поддержкой модуля node:crypto.

CustomEvent

История
Версия Изменения
v19.0.0

Больше не требует флага командной строки --experimental-global-customevent.

v18.7.0, v16.17.0

Добавлено в: v18.7.0, v16.17.0

Стабильность: 1 — Экспериментальный. Отключите этот API с помощью флага командной строки --no-experimental-global-customevent.

Совместимая с браузерами реализация веб-API CustomEvent.

Класс: DecompressionStream

Добавлено в: v18.0.0
Стабильность: 1 — Экспериментальный.

Совместимая с браузерами реализация DecompressionStream.

Event

История
Версия Изменения
v15.4.0

Больше не является экспериментальным.

v15.0.0

Добавлено в: v15.0.0

Совместимая с браузерами реализация класса Event. Подробнее см. в разделе EventTarget и API Event.

EventSource

Добавлено в: v20.18.0
Стабильность: 1 — Экспериментальный. Включите этот API с помощью флага командной строки --experimental-eventsource.

Совместимая с браузерами реализация класса EventSource.

EventTarget

История
Версия Изменения
v15.4.0

Больше не является экспериментальным.

v15.0.0

Добавлено в: v15.0.0

Совместимая с браузерами реализация класса EventTarget. Подробнее см. в разделе EventTarget и API Event.

exports

Эта переменная может показаться глобальной, но таковой не является. См. exports.

fetch

История
Версия Изменения
v18.0.0

Больше не требует флага командной строки --experimental-fetch.

v17.5.0, v16.15.0

Добавлено в: v17.5.0, v16.15.0

Стабильность: 1 — Экспериментальный. Отключите этот API с помощью флага командной строки --no-experimental-fetch.

Совместимая с браузерами реализация функции fetch().

const res = await fetch('https://nodejs.org/api/documentation.json');
if (res.ok) {
  const data = await res.json();
  console.log(data);
} copy

Реализация основана на undici — HTTP/1.1-клиенте, написанном с нуля для Node.js. Узнать, какая версия undici включена в процесс Node.js, можно, прочитав свойство process.versions.undici.

Пользовательский диспетчер

Можно использовать пользовательский диспетчер для отправки запросов, передав его в объект параметров fetch. Диспетчер должен быть совместим с классом Dispatcher из undici.

fetch(url, { dispatcher: new MyAgent() }); copy

В Node.js можно изменить глобальный диспетчер, установив undici и вызвав метод setGlobalDispatcher(). Вызов этого метода повлияет как на undici, так и на Node.js.

import { setGlobalDispatcher } from 'undici';
setGlobalDispatcher(new MyAgent()); copy

Связанные классы

Следующие глобальные объекты доступны для использования с fetch:

  • FormData
  • Headers
  • Request
  • Response.

Класс: File

Добавлено в: v20.0.0

См. <File>.

Класс FormData

История
Версия Изменения
v18.0.0

Больше не требует флага командной строки --experimental-fetch.

v17.6.0, v16.15.0

Добавлено в: v17.6.0, v16.15.0

Стабильность: 1 — Экспериментальный. Отключите этот API с помощью флага командной строки --no-experimental-fetch.

Совместимая с браузерами реализация <FormData>.

global

Добавлено в: v0.1.27
Стабильность: 3 — Устаревший. Вместо него используйте globalThis.
  • <Object> Объект глобального пространства имён.

В браузерах верхняя область видимости традиционно является глобальной. Это означает, что var something объявит новую глобальную переменную, за исключением модулей ECMAScript. В Node.js всё иначе. Верхняя область видимости не является глобальной; var something внутри модуля Node.js будет локальной для этого модуля независимо от того, является ли он модулем CommonJS или модулем ECMAScript.

Класс Headers

История
Версия Изменения
v18.0.0

Больше не требует флага командной строки --experimental-fetch.

v17.5.0, v16.15.0

Добавлено в: v17.5.0, v16.15.0

Стабильность: 1 — Экспериментальный. Отключите этот API с помощью флага командной строки --no-experimental-fetch.

Совместимая с браузерами реализация <Headers>.

MessageChannel

Добавлено в: v15.0.0

Класс MessageChannel. Подробнее см. MessageChannel.

MessageEvent

Добавлено в: v15.0.0

Класс MessageEvent. Подробнее см. MessageEvent.

MessagePort

Добавлено в: v15.0.0

Класс MessagePort. Подробнее см. MessagePort.

module

Эта переменная может показаться глобальной, но таковой не является. См. module.

PerformanceEntry

Добавлено в: v19.0.0

Класс PerformanceEntry. Подробнее см. PerformanceEntry.

PerformanceMark

Добавлено в: v19.0.0

Класс PerformanceMark. Подробнее см. PerformanceMark.

PerformanceMeasure

Добавлено в: v19.0.0

Класс PerformanceMeasure. Подробнее см. PerformanceMeasure.

PerformanceObserver

Добавлено в: v19.0.0

Класс PerformanceObserver. Подробнее см. PerformanceObserver.

PerformanceObserverEntryList

Добавлено в: v19.0.0

Класс PerformanceObserverEntryList. Подробнее см. PerformanceObserverEntryList.

PerformanceResourceTiming

Добавлено в: v19.0.0

Класс PerformanceResourceTiming. Подробнее см. PerformanceResourceTiming.

performance

Добавлено в: v16.0.0

Объект perf_hooks.performance.

process

Добавлено в: v0.1.7
  • <Object>

Объект процесса. См. раздел объект process.

queueMicrotask(callback)

Добавлено в: v11.0.0
  • callback <Function> Функция, которую нужно поставить в очередь.

Метод queueMicrotask() ставит в очередь микрозадачу для вызова callback. Если callback вызывает исключение, генерируется событие 'uncaughtException' объекта process.

Очередью микрозадач управляет V8; её можно использовать аналогично очереди process.nextTick(), которой управляет Node.js. В каждом цикле цикла событий Node.js очередь process.nextTick() всегда обрабатывается до очереди микрозадач.

// Here, `queueMicrotask()` is used to ensure the 'load' event is always
// emitted asynchronously, and therefore consistently. Using
// `process.nextTick()` here would result in the 'load' event always emitting
// before any other promise jobs.

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);
}; copy

Класс: ReadableByteStreamController

Добавлено в: v18.0.0
Стабильность: 1 — Экспериментальный.

Совместимая с браузерами реализация ReadableByteStreamController.

Класс: ReadableStream

Добавлено в: v18.0.0
Стабильность: 1 — Экспериментальный.

Совместимая с браузерами реализация ReadableStream.

Класс: ReadableStreamBYOBReader

Добавлено в: v18.0.0
Стабильность: 1 — Экспериментальный.

Совместимая с браузерами реализация ReadableStreamBYOBReader.

Класс: ReadableStreamBYOBRequest

Добавлено в: v18.0.0
Стабильность: 1 — Экспериментальный.

Совместимая с браузерами реализация ReadableStreamBYOBRequest.

Класс: ReadableStreamDefaultController

Добавлено в: v18.0.0
Стабильность: 1 — Экспериментальный.

Совместимая с браузерами реализация ReadableStreamDefaultController.

Класс: ReadableStreamDefaultReader

Добавлено в: v18.0.0
Стабильность: 1 — Экспериментальный.

Совместимая с браузерами реализация ReadableStreamDefaultReader.

require()

Эта переменная может показаться глобальной, но таковой не является. См. require().

Response

История
Версия Изменения
v18.0.0

Больше не требует флага командной строки --experimental-fetch.

v17.5.0, v16.15.0

Добавлено в: v17.5.0, v16.15.0

Стабильность: 1 — Экспериментальный. Отключите этот API с помощью флага командной строки --no-experimental-fetch.

Совместимая с браузерами реализация <Response>.

Request

История
Версия Изменения
v18.0.0

Больше не требует флага CLI --experimental-fetch.

v17.5.0, v16.15.0

Добавлено в: v17.5.0, v16.15.0

Стабильность: 1 — экспериментальный API. Отключите этот API с помощью флага командной строки --no-experimental-fetch.

Реализация <Request>, совместимая с браузерами.

setImmediate(callback[, ...args])

Добавлено в: v0.9.1

setImmediate описана в разделе таймеры.

setInterval(callback, delay[, ...args])

Добавлено в: v0.0.1

setInterval описана в разделе таймеры.

setTimeout(callback, delay[, ...args])

Добавлено в: v0.0.1

setTimeout описана в разделе таймеры.

structuredClone(value[, options])

Добавлено в: v17.0.0

Метод WHATWG structuredClone.

SubtleCrypto

История
Версия Изменения
v19.0.0

Больше не требует флага CLI --experimental-global-webcrypto.

v17.6.0, v16.15.0

Добавлено в: v17.6.0, v16.15.0

Стабильность: 1 — экспериментальный API. Отключите этот API с помощью флага командной строки --no-experimental-global-webcrypto.

Реализация <SubtleCrypto>, совместимая с браузерами. Эта глобальная переменная доступна, только если двоичный файл Node.js был собран с поддержкой модуля node:crypto.

DOMException

Добавлено в: v17.0.0

Класс WHATWG DOMException. Дополнительные сведения см. в разделе DOMException.

TextDecoder

Добавлено в: v11.0.0

Класс WHATWG TextDecoder. См. раздел TextDecoder.

Класс: TextDecoderStream

Добавлено в: v18.0.0
Стабильность: 1 — экспериментальный API.

Реализация TextDecoderStream, совместимая с браузерами.

TextEncoder

Добавлено в: v11.0.0

Класс WHATWG TextEncoder. См. раздел TextEncoder.

Класс: TextEncoderStream

Добавлено в: v18.0.0
Стабильность: 1 — экспериментальный API.

Реализация TextEncoderStream, совместимая с браузерами.

Класс: TransformStream

Добавлено в: v18.0.0
Стабильность: 1 — экспериментальный API.

Реализация TransformStream, совместимая с браузерами.

Класс: TransformStreamDefaultController

Добавлено в: v18.0.0
Стабильность: 1 — экспериментальный API.

Реализация TransformStreamDefaultController, совместимая с браузерами.

URL

Добавлено в: v10.0.0

Класс WHATWG URL. См. раздел URL.

URLSearchParams

Добавлено в: v10.0.0

Класс WHATWG URLSearchParams. См. раздел URLSearchParams.

WebAssembly

Добавлено в: v8.0.0
  • <Object>

Объект, служащий пространством имён для всех функций W3C, связанных с WebAssembly. Сведения об использовании и совместимости см. на сайте Mozilla Developer Network.

WebSocket

Добавлено в: v20.10.0
Стабильность: 1 — экспериментальный API.

Реализация WebSocket, совместимая с браузерами. Включите этот API с помощью флага командной строки --experimental-websocket.

Класс: WritableStream

Добавлено в: v18.0.0
Стабильность: 1 — экспериментальный API.

Реализация WritableStream, совместимая с браузерами.

Класс: WritableStreamDefaultController

Добавлено в: v18.0.0
Стабильность: 1 — экспериментальный API.

Реализация WritableStreamDefaultController, совместимая с браузерами.

Класс: WritableStreamDefaultWriter

Добавлено в: v18.0.0
Стабильность: 1 — экспериментальный API.

Реализация WritableStreamDefaultWriter, совместимая с браузерами.

© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v20.x/docs/api/globals.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API