util module
Модуль node:util поддерживает потребности Node.js внутренних API. Многие служебные программы также полезны для разработчиков приложений и модулей. Чтобы получить доступ к нему, выполните приведенные далее действия.
import util from 'node:util';
См. источник
Классы
| MIMEParams |
API |
| MIMEType |
Реализация класса MIMEType. В соответствии с соглашениями браузера все свойства объектов Строка MIME — это структурированная строка, содержащая несколько значимых компонентов. При синтаксическом анализе возвращается объект |
| TextDecoder |
Реализация API кодировки WHATWG standard
|
| TextEncoder |
Реализация API кодировки WHATWG standard
Класс |
Интерфейсы
Псевдонимы типа
| CustomInspectFunction | |
| CustomPromisify | |
| DebugLoggerFunction | |
| DiffEntry | |
| ParseArgsOptionsType |
Тип аргумента, используемого в parseArgs. |
| Style | |
Функции
| aborted(Abort |
Прослушивает событие прерывания в предоставленном
|
| add |
Добавляет параметр в заданный URL-адрес |
| assign(any[]) | Копирует значения всех перечисленных свойств из одного или нескольких исходных объектов в целевой объект и возвращает целевой объект. |
| auto |
Проверяет, содержит ли URL-адрес внедрения autoAuth=true. |
| callbackify(() => Promise<void>) | Принимает функцию
Будет напечатано:
Обратный вызов выполняется асинхронно и будет иметь ограниченную трассировку стека.
Если обратный вызов вызывается, процесс выдает событие Так как
|
| callbackify<T1, T2, T3, T4, T5, T6, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<TResult>) | |
| callbackify<T1, T2, T3, T4, T5, T6>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<void>) | |
| callbackify<T1, T2, T3, T4, T5, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>) | |
| callbackify<T1, T2, T3, T4, T5>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>) | |
| callbackify<T1, T2, T3, T4, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>) | |
| callbackify<T1, T2, T3, T4>((arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>) | |
| callbackify<T1, T2, T3, TResult>((arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>) | |
| callbackify<T1, T2, T3>((arg1: T1, arg2: T2, arg3: T3) => Promise<void>) | |
| callbackify<T1, T2, TResult>((arg1: T1, arg2: T2) => Promise<TResult>) | |
| callbackify<T1, T2>((arg1: T1, arg2: T2) => Promise<void>) | |
| callbackify<T1, TResult>((arg1: T1) => Promise<TResult>) | |
| callbackify<T1>((arg1: T1) => Promise<void>) | |
| callbackify<TResult>(() => Promise<TResult>) | |
| create |
Создает случайное от 5 до 6 символьных строк. |
| debuglog(string, (fn: Debug |
Метод
Если эта программа выполняется с
где Кроме того,
Если он выполняется с
В переменной Необязательный аргумент
|
| deprecate<T>(T, string, string) | Метод
При вызове Если один и тот же необязательный
Если используются флаги командной строки Если заданы флаги командной строки Если установлен флаг командной строки Флаг командной строки |
| diff(string | (readonly string[]), string | (readonly string[])) |
Если значения равны, возвращается пустой массив.
|
| find<T>((x: T) => boolean, T[]) | Находит первое значение в массиве, который соответствует указанному предикату. |
| find |
Находит индекс первого значения в массиве, который соответствует указанному предикату. |
| format(any, any[]) | Метод Если у описателя нет соответствующего аргумента, он не заменен:
Значения, которые не являются частью строки форматирования, форматируются с помощью Если в методе
Если первый аргумент не содержит допустимый описатель формата,
Если в
|
| format |
Эта функция идентична формату, за исключением того, что он принимает аргумент
|
| generateUUID() | Создает 20 символов uuid. |
| get |
|
| get |
Возвращает массив объектов сайта вызова, содержащих стек функции вызывающего объекта.
Можно восстановить исходные расположения, установив параметр
|
| get |
Возвращает случайное число |
| get |
Возвращает карту всех системных кодов ошибок, доступных в API Node.js.
Сопоставление кодов ошибок и имен ошибок зависит от платформы.
См.
|
| get |
Возвращает строковое сообщение для числового кода ошибки, полученного из API Node.js. Сопоставление кодов ошибок и строковых сообщений зависит от платформы.
|
| get |
Возвращает строковое имя числового кода ошибки, полученного из API Node.js.
Сопоставление кодов ошибок и имен ошибок зависит от платформы.
См.
|
| get |
Возвращает интервал времени между двумя датами в миллисекундах |
| inherits(unknown, unknown) | Использование Наследуйте методы прототипа от одного конструктора в другой. Прототип Это в основном добавляет некоторую проверку входных данных поверх
Пример ES6 с помощью
|
| inspect(any, boolean, null | number, boolean) | Метод
Циклические ссылки указывают на привязку с помощью эталонного индекса:
В следующем примере проверяются все свойства объекта
В следующем примере показан эффект параметра
Параметр
Параметр
Параметр
|
| inspect(any, Inspect |
|
| is |
Псевдоним для Возвращает
|
| is |
Проверяет, является ли тип внедрения для создания |
| is |
Возвращает Дополнительные сведения о глубоком равенства см. в |
| is |
Проверяет, является ли URL-адрес внедрения отчетом RDL. |
| is |
Проверяет, сохранен ли отчет. |
| parse |
Предоставляет API более высокого уровня для синтаксического анализа аргументов командной строки, чем взаимодействие с
|
| parse |
Стабильность: 1.1 — активная разработка с учетом примера файла
|
| promisify((callback: (err?: any) => void) => void) | |
| promisify(Function) | |
| promisify<T1, T2, T3, T4, T5, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => void) => void) | |
| promisify<T1, T2, T3, T4, T5>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: any) => void) => void) | |
| promisify<T1, T2, T3, T4, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => void) => void) | |
| promisify<T1, T2, T3, T4>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: any) => void) => void) | |
| promisify<T1, T2, T3, TResult>((arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => void) => void) | |
| promisify<T1, T2, T3>((arg1: T1, arg2: T2, arg3: T3, callback: (err?: any) => void) => void) | |
| promisify<T1, T2, TResult>((arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void) | |
| promisify<T1, T2>((arg1: T1, arg2: T2, callback: (err?: any) => void) => void) | |
| promisify<T1, TResult>((arg1: T1, callback: (err: any, result: TResult) => void) => void) | |
| promisify<T1>((arg1: T1, callback: (err?: any) => void) => void) | |
| promisify<TCustom>(Custom |
Принимает функцию после стандартного стиля обратного вызова с первой ошибкой, т. е. принимая
Или, эквивалентно используя
Если имеется
Использование
|
| promisify<TResult>((callback: (err: any, result: TResult) => void) => void) | |
| raise |
Вызывает настраиваемое событие с данными о событиях в указанном элементе HTML. |
| remove<T>((x: T) => boolean, T[]) | |
| set |
Включение или отключение печати трассировки стека в |
| strip |
Возвращает
|
| style |
Эта функция возвращает форматированный текст, учитывая
При передаче массива форматов порядок применения формата слева направо, поэтому следующий стиль может перезаписать предыдущий.
Значение специального формата Полный список форматов можно найти в модификаторах. |
| to |
Возвращает |
| transferable |
Создает и возвращает экземпляр |
| transferable |
Помечает указанный
|
Сведения о функции
aborted(AbortSignal, any)
Прослушивает событие прерывания в предоставленном signal и возвращает обещание, которое разрешается при прерывании signal.
Если resource предоставлено, он слабо ссылается на связанный объект операции, поэтому если resource собирается мусор до прерывания signal, то возвращенное обещание остается ожидаемым.
Это предотвращает утечку памяти в длительных или неотменяемых операциях.
import { aborted } from 'node:util';
// Obtain an object with an abortable signal, like a custom resource or operation.
const dependent = obtainSomethingAbortable();
// Pass `dependent` as the resource, indicating the promise should only resolve
// if `dependent` is still in memory when the signal is aborted.
aborted(dependent.signal, dependent).then(() => {
// This code runs when `dependent` is aborted.
console.log('Dependent resource was aborted.');
});
// Simulate an event that triggers the abort.
dependent.on('event', () => {
dependent.abort(); // This will cause the `aborted` promise to resolve.
});
function aborted(signal: AbortSignal, resource: any): Promise<void>
Параметры
- signal
-
AbortSignal
- resource
-
any
Любой объект, не допускающий значения NULL, привязанный к неизменяемой операции и удерживаемый слабо.
Если resource собирается мусор до прерывания signal, обещание остается ожидающих, что позволит Node.js прекратить отслеживание.
Это помогает предотвратить утечку памяти в длительных или неотменяемых операциях.
Возвращаемое значение
Promise<void>
addParamToUrl(string, string, string)
Добавляет параметр в заданный URL-адрес
function addParamToUrl(url: string, paramName: string, value: string): string
Параметры
- url
-
string
- paramName
-
string
- value
-
string
Возвращаемое значение
string
assign(any[])
Копирует значения всех перечисленных свойств из одного или нескольких исходных объектов в целевой объект и возвращает целевой объект.
function assign(args: any[]): any
Параметры
- args
-
any[]
Возвращаемое значение
any
autoAuthInEmbedUrl(string)
Проверяет, содержит ли URL-адрес внедрения autoAuth=true.
function autoAuthInEmbedUrl(embedUrl: string): boolean
Параметры
- embedUrl
-
string
Возвращаемое значение
boolean
callbackify(() => Promise<void>)
Принимает функцию async (или функцию, возвращающую Promise) и возвращает функцию после стиля обратного вызова с ошибкой первого вызова, т. е. при выполнении обратного вызова (err, value) => ... в качестве последнего аргумента. В обратном вызове первый аргумент будет причиной отклонения (или null, если разрешено Promise), а второй аргумент будет разрешенным значением.
import { callbackify } from 'node:util';
async function fn() {
return 'hello world';
}
const callbackFunction = callbackify(fn);
callbackFunction((err, ret) => {
if (err) throw err;
console.log(ret);
});
Будет напечатано:
hello world
Обратный вызов выполняется асинхронно и будет иметь ограниченную трассировку стека.
Если обратный вызов вызывается, процесс выдает событие 'uncaughtException', а если не обработано, завершится.
Так как null имеет особое значение в качестве первого аргумента обратного вызова, если завернутая функция отклоняет Promise с ложным значением в качестве причины, значение упаковывается в Error с исходным значением, хранящимся в поле с именем reason.
function fn() {
return Promise.reject(null);
}
const callbackFunction = util.callbackify(fn);
callbackFunction((err, ret) => {
// When the Promise was rejected with `null` it is wrapped with an Error and
// the original value is stored in `reason`.
err && Object.hasOwn(err, 'reason') && err.reason === null; // true
});
function callbackify(fn: () => Promise<void>): (callback: (err: NodeJS.ErrnoException) => void) => void
Параметры
- fn
-
() => Promise<void>
Функция async
Возвращаемое значение
(callback: (err: NodeJS.ErrnoException) => void) => void
функция стиля обратного вызова
callbackify<T1, T2, T3, T4, T5, T6, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<TResult>)
function callbackify<T1, T2, T3, T4, T5, T6, TResult>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<TResult>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void
Параметры
- fn
-
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<TResult>
Возвращаемое значение
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void
callbackify<T1, T2, T3, T4, T5, T6>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<void>)
function callbackify<T1, T2, T3, T4, T5, T6>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<void>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException) => void) => void
Параметры
- fn
-
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<void>
Возвращаемое значение
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException) => void) => void
callbackify<T1, T2, T3, T4, T5, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>)
function callbackify<T1, T2, T3, T4, T5, TResult>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void
Параметры
- fn
-
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>
Возвращаемое значение
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void
callbackify<T1, T2, T3, T4, T5>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>)
function callbackify<T1, T2, T3, T4, T5>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException) => void) => void
Параметры
- fn
-
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>
Возвращаемое значение
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException) => void) => void
callbackify<T1, T2, T3, T4, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>)
function callbackify<T1, T2, T3, T4, TResult>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void
Параметры
- fn
-
(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>
Возвращаемое значение
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void
callbackify<T1, T2, T3, T4>((arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>)
function callbackify<T1, T2, T3, T4>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException) => void) => void
Параметры
- fn
-
(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>
Возвращаемое значение
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException) => void) => void
callbackify<T1, T2, T3, TResult>((arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>)
function callbackify<T1, T2, T3, TResult>(fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void
Параметры
- fn
-
(arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>
Возвращаемое значение
(arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void
callbackify<T1, T2, T3>((arg1: T1, arg2: T2, arg3: T3) => Promise<void>)
function callbackify<T1, T2, T3>(fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<void>): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException) => void) => void
Параметры
- fn
-
(arg1: T1, arg2: T2, arg3: T3) => Promise<void>
Возвращаемое значение
(arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException) => void) => void
callbackify<T1, T2, TResult>((arg1: T1, arg2: T2) => Promise<TResult>)
function callbackify<T1, T2, TResult>(fn: (arg1: T1, arg2: T2) => Promise<TResult>): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void
Параметры
- fn
-
(arg1: T1, arg2: T2) => Promise<TResult>
Возвращаемое значение
(arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void
callbackify<T1, T2>((arg1: T1, arg2: T2) => Promise<void>)
function callbackify<T1, T2>(fn: (arg1: T1, arg2: T2) => Promise<void>): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException) => void) => void
Параметры
- fn
-
(arg1: T1, arg2: T2) => Promise<void>
Возвращаемое значение
(arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException) => void) => void
callbackify<T1, TResult>((arg1: T1) => Promise<TResult>)
function callbackify<T1, TResult>(fn: (arg1: T1) => Promise<TResult>): (arg1: T1, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void
Параметры
- fn
-
(arg1: T1) => Promise<TResult>
Возвращаемое значение
(arg1: T1, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void
callbackify<T1>((arg1: T1) => Promise<void>)
function callbackify<T1>(fn: (arg1: T1) => Promise<void>): (arg1: T1, callback: (err: NodeJS.ErrnoException) => void) => void
Параметры
- fn
-
(arg1: T1) => Promise<void>
Возвращаемое значение
(arg1: T1, callback: (err: NodeJS.ErrnoException) => void) => void
callbackify<TResult>(() => Promise<TResult>)
function callbackify<TResult>(fn: () => Promise<TResult>): (callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void
Параметры
- fn
-
() => Promise<TResult>
Возвращаемое значение
(callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void
createRandomString()
Создает случайное от 5 до 6 символьных строк.
function createRandomString(): string
Возвращаемое значение
string
debuglog(string, (fn: DebugLoggerFunction) => void)
Метод util.debuglog() используется для создания функции, которая условно записывает отладочные сообщения stderr в зависимости от существования переменной NODE_DEBUG среды. Если имя section отображается в значении этой переменной среды, возвращаемая функция работает аналогично console.error(). Если нет, возвращаемая функция является no-op.
import { debuglog } from 'node:util';
const log = debuglog('foo');
log('hello from foo [%d]', 123);
Если эта программа выполняется с NODE_DEBUG=foo в среде, она выдаст примерно следующее:
FOO 3245: hello from foo [123]
где 3245 является идентификатором процесса. Если он не выполняется с этим набором переменных среды, он не будет выводить ничего.
Кроме того, section поддерживает подстановочный знак:
import { debuglog } from 'node:util';
const log = debuglog('foo');
log('hi there, it\'s foo-bar [%d]', 2333);
Если он выполняется с NODE_DEBUG=foo* в среде, он выдаст примерно следующее:
FOO-BAR 3257: hi there, it's foo-bar [2333]
В переменной section среды могут быть указаны несколько имен, разделенных NODE_DEBUG запятыми: NODE_DEBUG=fs,net,tls
Необязательный аргумент callback можно использовать для замены функции ведения журнала другой функцией, которая не имеет инициализации или ненужной оболочки.
import { debuglog } from 'node:util';
let log = debuglog('internals', (debug) => {
// Replace with a logging function that optimizes out
// testing if the section is enabled
log = debug;
});
function debuglog(section: string, callback?: (fn: DebugLoggerFunction) => void): DebugLogger
Параметры
- section
-
string
Строка, определяющая часть приложения, для которой создается debuglog функция.
- callback
-
(fn: DebugLoggerFunction) => void
Обратный вызов вызывается при первом вызове функции ведения журнала с аргументом функции, который является более оптимизированной функцией ведения журнала.
Возвращаемое значение
Функция ведения журнала
deprecate<T>(T, string, string)
Метод util.deprecate() упаковывает fn (который может быть функцией или классом), таким образом, чтобы он был помечен как устаревший.
import { deprecate } from 'node:util';
export const obsoleteFunction = deprecate(() => {
// Do something here.
}, 'obsoleteFunction() is deprecated. Use newShinyFunction() instead.');
При вызове util.deprecate() возвращает функцию, которая будет выдавать DeprecationWarning с помощью события 'warning'. Предупреждение будет выведено и напечатано для stderr при первом вызове возвращаемой функции. После выдачи предупреждения функция-оболочка вызывается без предупреждения.
Если один и тот же необязательный code предоставляется в нескольких вызовах util.deprecate(), предупреждение будет выдаваться только один раз для этого code.
import { deprecate } from 'node:util';
const fn1 = deprecate(
() => 'a value',
'deprecation message',
'DEP0001',
);
const fn2 = deprecate(
() => 'a different value',
'other dep message',
'DEP0001',
);
fn1(); // Emits a deprecation warning with code DEP0001
fn2(); // Does not emit a deprecation warning because it has the same code
Если используются флаги командной строки --no-deprecation или --no-warnings, либо если для свойства process.noDeprecation задано значение trueдо в качестве первого предупреждения об отмене, метод util.deprecate() ничего не делает.
Если заданы флаги командной строки --trace-deprecation или --trace-warnings, либо для свойства process.traceDeprecation задано значение true, предупреждение и трассировка стека печатаются в stderr при первом вызове нерекомендуемой функции.
Если установлен флаг командной строки --throw-deprecation или свойство process.throwDeprecation имеет значение true, то при вызове нерекомендуемой функции будет возникать исключение.
Флаг командной строки --throw-deprecation и свойство process.throwDeprecation имеет приоритет над --trace-deprecation и process.traceDeprecation.
function deprecate<T>(fn: T, msg: string, code?: string): T
Параметры
- fn
-
T
Нерекомендуемая функция.
- msg
-
string
Предупреждение, отображаемое при вызове нерекомендуемой функции.
- code
-
string
Код нерекомендуемого использования. Список кодов см. в list of deprecated APIs.
Возвращаемое значение
T
Нерекомендуемая функция, заключенная в оболочку, чтобы вывести предупреждение.
diff(string | (readonly string[]), string | (readonly string[]))
util.diff() сравнивает два значения строки или массива и возвращает массив записей разницы.
Он использует алгоритм диффа Myers для вычисления минимальных различий, который является тем же алгоритмом, который используется внутренне в сообщениях об ошибках утверждения.
Если значения равны, возвращается пустой массив.
const { diff } = require('node:util');
// Comparing strings
const actualString = '12345678';
const expectedString = '12!!5!7!';
console.log(diff(actualString, expectedString));
// [
// [0, '1'],
// [0, '2'],
// [1, '3'],
// [1, '4'],
// [-1, '!'],
// [-1, '!'],
// [0, '5'],
// [1, '6'],
// [-1, '!'],
// [0, '7'],
// [1, '8'],
// [-1, '!'],
// ]
// Comparing arrays
const actualArray = ['1', '2', '3'];
const expectedArray = ['1', '3', '4'];
console.log(diff(actualArray, expectedArray));
// [
// [0, '1'],
// [1, '2'],
// [0, '3'],
// [-1, '4'],
// ]
// Equal values return empty array
console.log(diff('same', 'same'));
// []
function diff(actual: string | (readonly string[]), expected: string | (readonly string[])): DiffEntry[]
Параметры
- actual
-
string | (readonly string[])
Первое значение для сравнения
- expected
-
string | (readonly string[])
Второе значение для сравнения
Возвращаемое значение
Массив записей разницы. Каждая запись представляет собой массив с двумя элементами:
- Индекс 0: код операции:
number-1для удаления для0no-op/без изменений1для вставки - Индекс 1.
stringЗначение, связанное с операцией
find<T>((x: T) => boolean, T[])
Находит первое значение в массиве, который соответствует указанному предикату.
function find<T>(predicate: (x: T) => boolean, xs: T[]): T
Параметры
- predicate
-
(x: T) => boolean
- xs
-
T[]
Возвращаемое значение
T
findIndex<T>((x: T) => boolean, T[])
Находит индекс первого значения в массиве, который соответствует указанному предикату.
function findIndex<T>(predicate: (x: T) => boolean, xs: T[]): number
Параметры
- predicate
-
(x: T) => boolean
- xs
-
T[]
Возвращаемое значение
number
format(any, any[])
Метод util.format() возвращает форматированную строку с помощью первого аргумента в виде строки формата printf, которая может содержать ноль или более описателей формата. Каждый описатель заменяется преобразованным значением из соответствующего аргумента. Поддерживаемые описатели:
Если у описателя нет соответствующего аргумента, он не заменен:
util.format('%s:%s', 'foo');
// Returns: 'foo:%s'
Значения, которые не являются частью строки форматирования, форматируются с помощью util.inspect(), если их тип не string.
Если в методе util.format() передается больше аргументов, чем число описателей, дополнительные аргументы объединяются в возвращаемую строку, разделенные пробелами:
util.format('%s:%s', 'foo', 'bar', 'baz');
// Returns: 'foo:bar baz'
Если первый аргумент не содержит допустимый описатель формата, util.format() возвращает строку, которая является объединением всех аргументов, разделенных пробелами:
util.format(1, 2, 3);
// Returns: '1 2 3'
Если в util.format()передается только один аргумент, он возвращается без форматирования:
util.format('%% %s');
// Returns: '%% %s'
util.format() — это синхронный метод, предназначенный в качестве средства отладки.
Некоторые входные значения могут иметь значительные затраты на производительность, которые могут блокировать цикл событий. Используйте эту функцию с осторожностью и никогда не в пути к горячему коду.
function format(format?: any, param: any[]): string
Параметры
- format
-
any
Строка формата printf.
- param
-
any[]
Возвращаемое значение
string
formatWithOptions(InspectOptions, any, any[])
Эта функция идентична формату, за исключением того, что он принимает аргумент inspectOptions, который задает параметры, передаваемые проверки.
util.formatWithOptions({ colors: true }, 'See object %O', { foo: 42 });
// Returns 'See object { foo: 42 }', where `42` is colored as a number
// when printed to a terminal.
function formatWithOptions(inspectOptions: InspectOptions, format?: any, param: any[]): string
Параметры
- inspectOptions
- InspectOptions
- format
-
any
- param
-
any[]
Возвращаемое значение
string
generateUUID()
Создает 20 символов uuid.
function generateUUID(): string
Возвращаемое значение
string
getCallSites(GetCallSitesOptions)
function getCallSites(options: GetCallSitesOptions): CallSiteObject[]
Параметры
- options
-
GetCallSitesOptions
Возвращаемое значение
getCallSites(number, GetCallSitesOptions)
Возвращает массив объектов сайта вызова, содержащих стек функции вызывающего объекта.
import { getCallSites } from 'node:util';
function exampleFunction() {
const callSites = getCallSites();
console.log('Call Sites:');
callSites.forEach((callSite, index) => {
console.log(`CallSite ${index + 1}:`);
console.log(`Function Name: ${callSite.functionName}`);
console.log(`Script Name: ${callSite.scriptName}`);
console.log(`Line Number: ${callSite.lineNumber}`);
console.log(`Column Number: ${callSite.column}`);
});
// CallSite 1:
// Function Name: exampleFunction
// Script Name: /home/example.js
// Line Number: 5
// Column Number: 26
// CallSite 2:
// Function Name: anotherFunction
// Script Name: /home/example.js
// Line Number: 22
// Column Number: 3
// ...
}
// A function to simulate another stack layer
function anotherFunction() {
exampleFunction();
}
anotherFunction();
Можно восстановить исходные расположения, установив параметр sourceMap для true.
Если исходная карта недоступна, исходное расположение будет совпадать с текущим расположением.
Если флаг --enable-source-maps включен, например при использовании --experimental-transform-types, sourceMap будет true по умолчанию.
import { getCallSites } from 'node:util';
interface Foo {
foo: string;
}
const callSites = getCallSites({ sourceMap: true });
// With sourceMap:
// Function Name: ''
// Script Name: example.js
// Line Number: 7
// Column Number: 26
// Without sourceMap:
// Function Name: ''
// Script Name: example.js
// Line Number: 2
// Column Number: 26
function getCallSites(frameCount?: number, options?: GetCallSitesOptions): CallSiteObject[]
Параметры
- frameCount
-
number
Количество кадров для записи в качестве объектов сайта вызова.
по умолчанию:10. Допустимый диапазон составляет от 1 до 200.
- options
-
GetCallSitesOptions
Возвращаемое значение
Массив объектов сайта вызова
getRandomValue()
Возвращает случайное число
function getRandomValue(): number
Возвращаемое значение
number
getSystemErrorMap()
Возвращает карту всех системных кодов ошибок, доступных в API Node.js.
Сопоставление кодов ошибок и имен ошибок зависит от платформы.
См. Common System Errors имена распространенных ошибок.
fs.access('file/that/does/not/exist', (err) => {
const errorMap = util.getSystemErrorMap();
const name = errorMap.get(err.errno);
console.error(name); // ENOENT
});
function getSystemErrorMap(): Map<number, [string, string]>
Возвращаемое значение
Map<number, [string, string]>
getSystemErrorMessage(number)
Возвращает строковое сообщение для числового кода ошибки, полученного из API Node.js. Сопоставление кодов ошибок и строковых сообщений зависит от платформы.
fs.access('file/that/does/not/exist', (err) => {
const message = util.getSystemErrorMessage(err.errno);
console.error(message); // no such file or directory
});
function getSystemErrorMessage(err: number): string
Параметры
- err
-
number
Возвращаемое значение
string
getSystemErrorName(number)
Возвращает строковое имя числового кода ошибки, полученного из API Node.js.
Сопоставление кодов ошибок и имен ошибок зависит от платформы.
См. Common System Errors имена распространенных ошибок.
fs.access('file/that/does/not/exist', (err) => {
const name = util.getSystemErrorName(err.errno);
console.error(name); // ENOENT
});
function getSystemErrorName(err: number): string
Параметры
- err
-
number
Возвращаемое значение
string
getTimeDiffInMilliseconds(Date, Date)
Возвращает интервал времени между двумя датами в миллисекундах
function getTimeDiffInMilliseconds(start: Date, end: Date): number
Параметры
- start
-
Date
- end
-
Date
Возвращаемое значение
number
inherits(unknown, unknown)
Использование util.inherits() не рекомендуется. Чтобы получить поддержку наследования на уровне языка, используйте ключевые слова ES6 class и extends. Кроме того, обратите внимание, что два стиля семантически несовместимы.
Наследуйте методы прототипа от одного конструктора в другой. Прототип constructor будет установлен на новый объект, созданный из superConstructor.
Это в основном добавляет некоторую проверку входных данных поверх Object.setPrototypeOf(constructor.prototype, superConstructor.prototype).
В качестве дополнительного удобства superConstructor будет доступен через свойство constructor.super_.
const util = require('node:util');
const EventEmitter = require('node:events');
function MyStream() {
EventEmitter.call(this);
}
util.inherits(MyStream, EventEmitter);
MyStream.prototype.write = function(data) {
this.emit('data', data);
};
const stream = new MyStream();
console.log(stream instanceof EventEmitter); // true
console.log(MyStream.super_ === EventEmitter); // true
stream.on('data', (data) => {
console.log(`Received data: "${data}"`);
});
stream.write('It works!'); // Received data: "It works!"
Пример ES6 с помощью class и extends:
import EventEmitter from 'node:events';
class MyStream extends EventEmitter {
write(data) {
this.emit('data', data);
}
}
const stream = new MyStream();
stream.on('data', (data) => {
console.log(`Received data: "${data}"`);
});
stream.write('With ES6');
function inherits(constructor: unknown, superConstructor: unknown)
Параметры
- constructor
-
unknown
- superConstructor
-
unknown
inspect(any, boolean, null | number, boolean)
Метод util.inspect() возвращает строковое представление object, предназначенное для отладки. Выходные данные util.inspect могут изменяться в любое время и не должны зависеть от программного использования. Дополнительные options могут быть переданы, изменяющие результат.
util.inspect() будет использовать имя конструктора и /или Symbol.toStringTag свойство, чтобы сделать идентифицируемый тег для проверяемого значения.
class Foo {
get [Symbol.toStringTag]() {
return 'bar';
}
}
class Bar {}
const baz = Object.create(null, { [Symbol.toStringTag]: { value: 'foo' } });
util.inspect(new Foo()); // 'Foo [bar] {}'
util.inspect(new Bar()); // 'Bar {}'
util.inspect(baz); // '[foo] {}'
Циклические ссылки указывают на привязку с помощью эталонного индекса:
import { inspect } from 'node:util';
const obj = {};
obj.a = [obj];
obj.b = {};
obj.b.inner = obj.b;
obj.b.obj = obj;
console.log(inspect(obj));
// <ref *1> {
// a: [ [Circular *1] ],
// b: <ref *2> { inner: [Circular *2], obj: [Circular *1] }
// }
В следующем примере проверяются все свойства объекта util:
import util from 'node:util';
console.log(util.inspect(util, { showHidden: true, depth: null }));
В следующем примере показан эффект параметра compact.
import { inspect } from 'node:util';
const o = {
a: [1, 2, [[
'Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit, sed do ' +
'eiusmod \ntempor incididunt ut labore et dolore magna aliqua.',
'test',
'foo']], 4],
b: new Map([['za', 1], ['zb', 'test']]),
};
console.log(inspect(o, { compact: true, depth: 5, breakLength: 80 }));
// { a:
// [ 1,
// 2,
// [ [ 'Lorem ipsum dolor sit amet,\nconsectetur [...]', // A long line
// 'test',
// 'foo' ] ],
// 4 ],
// b: Map(2) { 'za' => 1, 'zb' => 'test' } }
// Setting `compact` to false or an integer creates more reader friendly output.
console.log(inspect(o, { compact: false, depth: 5, breakLength: 80 }));
// {
// a: [
// 1,
// 2,
// [
// [
// 'Lorem ipsum dolor sit amet,\n' +
// 'consectetur adipiscing elit, sed do eiusmod \n' +
// 'tempor incididunt ut labore et dolore magna aliqua.',
// 'test',
// 'foo'
// ]
// ],
// 4
// ],
// b: Map(2) {
// 'za' => 1,
// 'zb' => 'test'
// }
// }
// Setting `breakLength` to e.g. 150 will print the "Lorem ipsum" text in a
// single line.
Параметр showHidden позволяет проверять WeakMap и WeakSet записи. Если есть больше записей, чем maxArrayLength, нет гарантии, какие записи отображаются. Это означает, что получение одного и того же WeakSet записей дважды может привести к разным выходным данным. Кроме того, записи без оставшихся надежных ссылок могут собираться в любое время.
import { inspect } from 'node:util';
const obj = { a: 1 };
const obj2 = { b: 2 };
const weakSet = new WeakSet([obj, obj2]);
console.log(inspect(weakSet, { showHidden: true }));
// WeakSet { { a: 1 }, { b: 2 } }
Параметр sorted гарантирует, что порядок вставки свойств объекта не влияет на результат util.inspect().
import { inspect } from 'node:util';
import assert from 'node:assert';
const o1 = {
b: [2, 3, 1],
a: '`a` comes before `b`',
c: new Set([2, 3, 1]),
};
console.log(inspect(o1, { sorted: true }));
// { a: '`a` comes before `b`', b: [ 2, 3, 1 ], c: Set(3) { 1, 2, 3 } }
console.log(inspect(o1, { sorted: (a, b) => b.localeCompare(a) }));
// { c: Set(3) { 3, 2, 1 }, b: [ 2, 3, 1 ], a: '`a` comes before `b`' }
const o2 = {
c: new Set([2, 1, 3]),
a: '`a` comes before `b`',
b: [2, 3, 1],
};
assert.strict.equal(
inspect(o1, { sorted: true }),
inspect(o2, { sorted: true }),
);
Параметр numericSeparator добавляет символ подчеркивания каждые три цифры ко всем числам.
import { inspect } from 'node:util';
const thousand = 1000;
const million = 1000000;
const bigNumber = 123456789n;
const bigDecimal = 1234.12345;
console.log(inspect(thousand, { numericSeparator: true }));
// 1_000
console.log(inspect(million, { numericSeparator: true }));
// 1_000_000
console.log(inspect(bigNumber, { numericSeparator: true }));
// 123_456_789n
console.log(inspect(bigDecimal, { numericSeparator: true }));
// 1_234.123_45
util.inspect() — это синхронный метод, предназначенный для отладки. Максимальная длина выходных данных составляет примерно 128 МиБ. Входные данные, которые приводят к более длительным выходным данным, будут усечены.
function inspect(object: any, showHidden?: boolean, depth?: null | number, color?: boolean): string
Параметры
- object
-
any
Любой примитив JavaScript или Object.
- showHidden
-
boolean
- depth
-
null | number
- color
-
boolean
Возвращаемое значение
string
Представление object.
inspect(any, InspectOptions)
function inspect(object: any, options?: InspectOptions): string
Параметры
- object
-
any
- options
- InspectOptions
Возвращаемое значение
string
isArray(unknown)
Предупреждение
Теперь этот API является нерекомендуемым.
Since v4.0.0 - Use isArray instead.
Псевдоним для Array.isArray().
Возвращает true, если заданный object является Array. В противном случае возвращается false.
import util from 'node:util';
util.isArray([]);
// Returns: true
util.isArray(new Array());
// Returns: true
util.isArray({});
// Returns: false
function isArray(object: unknown): object
Параметры
- object
-
unknown
Возвращаемое значение
object
isCreate(string)
Проверяет, является ли тип внедрения для создания
function isCreate(embedType: string): boolean
Параметры
- embedType
-
string
Возвращаемое значение
boolean
isDeepStrictEqual(unknown, unknown, IsDeepStrictEqualOptions)
Возвращает true, если существует глубокое строгое равенство между val1 и val2.
В противном случае возвращается false.
Дополнительные сведения о глубоком равенства см. в assert.deepStrictEqual().
function isDeepStrictEqual(val1: unknown, val2: unknown, options?: IsDeepStrictEqualOptions): boolean
Параметры
- val1
-
unknown
- val2
-
unknown
- options
- IsDeepStrictEqualOptions
Возвращаемое значение
boolean
isRDLEmbed(string)
Проверяет, является ли URL-адрес внедрения отчетом RDL.
function isRDLEmbed(embedUrl: string): boolean
Параметры
- embedUrl
-
string
Возвращаемое значение
boolean
isSavedInternal(HttpPostMessage, string, Window)
Проверяет, сохранен ли отчет.
function isSavedInternal(hpm: HttpPostMessage, uid: string, contentWindow: Window): Promise<boolean>
Параметры
- hpm
-
HttpPostMessage
- uid
-
string
- contentWindow
-
Window
Возвращаемое значение
Promise<boolean>
parseArgs<T>(T)
Предоставляет API более высокого уровня для синтаксического анализа аргументов командной строки, чем взаимодействие с process.argv напрямую. Принимает спецификацию ожидаемых аргументов и возвращает структурированный объект с проанализированными параметрами и позициями.
import { parseArgs } from 'node:util';
const args = ['-f', '--bar', 'b'];
const options = {
foo: {
type: 'boolean',
short: 'f',
},
bar: {
type: 'string',
},
};
const {
values,
positionals,
} = parseArgs({ args, options });
console.log(values, positionals);
// Prints: [Object: null prototype] { foo: true, bar: 'b' } []
function parseArgs<T>(config?: T): ParsedResults<T>
Параметры
- config
-
T
Используется для предоставления аргументов для синтаксического анализа и настройки средства синтаксического анализа.
config поддерживает следующие свойства:
Возвращаемое значение
ParsedResults<T>
Аргументы командной строки синтаксического анализа:
parseEnv(string)
Стабильность: 1.1 — активная разработка с учетом примера файла .env:
import { parseEnv } from 'node:util';
parseEnv('HELLO=world\nHELLO=oh my\n');
// Returns: { HELLO: 'oh my' }
function parseEnv(content: string): NodeJS.Dict<string>
Параметры
- content
-
string
Необработанное содержимое файла .env.
Возвращаемое значение
NodeJS.Dict<string>
promisify((callback: (err?: any) => void) => void)
function promisify(fn: (callback: (err?: any) => void) => void): () => Promise<void>
Параметры
- fn
-
(callback: (err?: any) => void) => void
Возвращаемое значение
() => Promise<void>
promisify(Function)
function promisify(fn: Function): Function
Параметры
- fn
-
Function
Возвращаемое значение
Function
promisify<T1, T2, T3, T4, T5, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => void) => void)
function promisify<T1, T2, T3, T4, T5, TResult>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => void) => void): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>
Параметры
- fn
-
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => void) => void
Возвращаемое значение
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>
promisify<T1, T2, T3, T4, T5>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: any) => void) => void)
function promisify<T1, T2, T3, T4, T5>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>
Параметры
- fn
-
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: any) => void) => void
Возвращаемое значение
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>
promisify<T1, T2, T3, T4, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => void) => void)
function promisify<T1, T2, T3, T4, TResult>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => void) => void): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>
Параметры
- fn
-
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => void) => void
Возвращаемое значение
(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>
promisify<T1, T2, T3, T4>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: any) => void) => void)
function promisify<T1, T2, T3, T4>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>
Параметры
- fn
-
(arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: any) => void) => void
Возвращаемое значение
(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>
promisify<T1, T2, T3, TResult>((arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => void) => void)
function promisify<T1, T2, T3, TResult>(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => void) => void): (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>
Параметры
- fn
-
(arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => void) => void
Возвращаемое значение
(arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>
promisify<T1, T2, T3>((arg1: T1, arg2: T2, arg3: T3, callback: (err?: any) => void) => void)
function promisify<T1, T2, T3>(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2, arg3: T3) => Promise<void>
Параметры
- fn
-
(arg1: T1, arg2: T2, arg3: T3, callback: (err?: any) => void) => void
Возвращаемое значение
(arg1: T1, arg2: T2, arg3: T3) => Promise<void>
promisify<T1, T2, TResult>((arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void)
function promisify<T1, T2, TResult>(fn: (arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void): (arg1: T1, arg2: T2) => Promise<TResult>
Параметры
- fn
-
(arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void
Возвращаемое значение
(arg1: T1, arg2: T2) => Promise<TResult>
promisify<T1, T2>((arg1: T1, arg2: T2, callback: (err?: any) => void) => void)
function promisify<T1, T2>(fn: (arg1: T1, arg2: T2, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2) => Promise<void>
Параметры
- fn
-
(arg1: T1, arg2: T2, callback: (err?: any) => void) => void
Возвращаемое значение
(arg1: T1, arg2: T2) => Promise<void>
promisify<T1, TResult>((arg1: T1, callback: (err: any, result: TResult) => void) => void)
function promisify<T1, TResult>(fn: (arg1: T1, callback: (err: any, result: TResult) => void) => void): (arg1: T1) => Promise<TResult>
Параметры
- fn
-
(arg1: T1, callback: (err: any, result: TResult) => void) => void
Возвращаемое значение
(arg1: T1) => Promise<TResult>
promisify<T1>((arg1: T1, callback: (err?: any) => void) => void)
function promisify<T1>(fn: (arg1: T1, callback: (err?: any) => void) => void): (arg1: T1) => Promise<void>
Параметры
- fn
-
(arg1: T1, callback: (err?: any) => void) => void
Возвращаемое значение
(arg1: T1) => Promise<void>
promisify<TCustom>(CustomPromisify<TCustom>)
Принимает функцию после стандартного стиля обратного вызова с первой ошибкой, т. е. принимая (err, value) => ... обратный вызов в качестве последнего аргумента, и возвращает версию, которая возвращает обещания.
import { promisify } from 'node:util';
import { stat } from 'node:fs';
const promisifiedStat = promisify(stat);
promisifiedStat('.').then((stats) => {
// Do something with `stats`
}).catch((error) => {
// Handle the error.
});
Или, эквивалентно используя async functions:
import { promisify } from 'node:util';
import { stat } from 'node:fs';
const promisifiedStat = promisify(stat);
async function callStat() {
const stats = await promisifiedStat('.');
console.log(`This directory is owned by ${stats.uid}`);
}
callStat();
Если имеется original[util.promisify.custom] свойство, возвращает его значение, promisify см. сведения о пользовательских функциях.
promisify() предполагает, что original является функцией обратного вызова в качестве окончательного аргумента во всех случаях. Если original не является функцией, promisify() вызовет ошибку. Если original является функцией, но его последний аргумент не является обратным вызовом с ошибкой, он по-прежнему будет передан обратному вызову в качестве последнего аргумента.
Использование promisify() в методах класса или других методах, использующих this, может не работать должным образом, если только не обработано специально:
import { promisify } from 'node:util';
class Foo {
constructor() {
this.a = 42;
}
bar(callback) {
callback(null, this.a);
}
}
const foo = new Foo();
const naiveBar = promisify(foo.bar);
// TypeError: Cannot read properties of undefined (reading 'a')
// naiveBar().then(a => console.log(a));
naiveBar.call(foo).then((a) => console.log(a)); // '42'
const bindBar = naiveBar.bind(foo);
bindBar().then((a) => console.log(a)); // '42'
function promisify<TCustom>(fn: CustomPromisify<TCustom>): TCustom
Параметры
- fn
-
CustomPromisify<TCustom>
Возвращаемое значение
TCustom
promisify<TResult>((callback: (err: any, result: TResult) => void) => void)
function promisify<TResult>(fn: (callback: (err: any, result: TResult) => void) => void): () => Promise<TResult>
Параметры
- fn
-
(callback: (err: any, result: TResult) => void) => void
Возвращаемое значение
() => Promise<TResult>
raiseCustomEvent(HTMLElement, string, any)
Вызывает настраиваемое событие с данными о событиях в указанном элементе HTML.
function raiseCustomEvent(element: HTMLElement, eventName: string, eventData: any)
Параметры
- element
-
HTMLElement
- eventName
-
string
- eventData
-
any
remove<T>((x: T) => boolean, T[])
function remove<T>(predicate: (x: T) => boolean, xs: T[])
Параметры
- predicate
-
(x: T) => boolean
- xs
-
T[]
setTraceSigInt(boolean)
Включение или отключение печати трассировки стека в SIGINT. API доступен только в основном потоке.
function setTraceSigInt(enable: boolean)
Параметры
- enable
-
boolean
stripVTControlCharacters(string)
Возвращает str с удаленными кодами escape-кода ANSI.
console.log(util.stripVTControlCharacters('\u001B[4mvalue\u001B[0m'));
// Prints "value"
function stripVTControlCharacters(str: string): string
Параметры
- str
-
string
Возвращаемое значение
string
styleText(ForegroundColors | BackgroundColors | Modifiers | (ForegroundColors | BackgroundColors | Modifiers)[], string, StyleTextOptions)
Эта функция возвращает форматированный текст, учитывая format переданный для печати в терминале. Он знает о возможностях терминала и действует в соответствии с набором конфигурации с помощью NO_COLORNODE_DISABLE_COLORS переменных среды и FORCE_COLOR среды.
import { styleText } from 'node:util';
import { stderr } from 'node:process';
const successMessage = styleText('green', 'Success!');
console.log(successMessage);
const errorMessage = styleText(
'red',
'Error! Error!',
// Validate if process.stderr has TTY
{ stream: stderr },
);
console.error(errorMessage);
util.inspect.colors также предоставляет текстовые форматы, такие как italic, и underline, и можно объединить оба:
console.log(
util.styleText(['underline', 'italic'], 'My italic underlined message'),
);
При передаче массива форматов порядок применения формата слева направо, поэтому следующий стиль может перезаписать предыдущий.
console.log(
util.styleText(['red', 'green'], 'text'), // green
);
Значение специального формата none не применяет к тексту дополнительные стили.
Полный список форматов можно найти в модификаторах.
function styleText(format: ForegroundColors | BackgroundColors | Modifiers | (ForegroundColors | BackgroundColors | Modifiers)[], text: string, options?: StyleTextOptions): string
Параметры
- format
-
ForegroundColors | BackgroundColors | Modifiers | (ForegroundColors | BackgroundColors | Modifiers)[]
Текстовый формат или массив текстовых форматов, определенных в util.inspect.colors.
- text
-
string
Отформатированный текст.
- options
- StyleTextOptions
Возвращаемое значение
string
toUSVString(string)
Возвращает string после замены любых суррогатных точек кода (или аналогично неоплачиваемых суррогатных единиц кода) с символом замены Юникода U+FFFD.
function toUSVString(string: string): string
Параметры
- string
-
string
Возвращаемое значение
string
transferableAbortController()
Создает и возвращает экземпляр AbortController, AbortSignal которого помечены как переносимые и могут использоваться с structuredClone() или postMessage().
function transferableAbortController(): AbortController
Возвращаемое значение
AbortController
Переносимый abortController
transferableAbortSignal(AbortSignal)
Помечает указанный AbortSignal как переносимый, чтобы его можно было использовать сstructuredClone() и postMessage().
const signal = transferableAbortSignal(AbortSignal.timeout(100));
const channel = new MessageChannel();
channel.port2.postMessage(signal, [signal]);
function transferableAbortSignal(signal: AbortSignal): AbortSignal
Параметры
- signal
-
AbortSignal
The AbortSignal
Возвращаемое значение
AbortSignal
Тот же abortSignal