util.promisify()

Wraps a callback-style function so it returns a Promise.

Since Node 8 Spec ↗

Syntax

util.promisify(original)

Parameters

NameTypeRequiredDescription
original function Yes A function following the error-first callback convention `(err, result)`.

Returns

function — A function that returns a Promise.

Examples

import { promisify } from 'node:util';
import { execFile } from 'node:child_process';

const run = promisify(execFile);
const { stdout } = await run('node', ['--version']);
console.log(stdout.trim());
Output
v22.1.0
import { promisify } from 'node:util';

const wait = promisify(setTimeout);
await wait(100);
console.log('100ms later');
Output
100ms later

Notes

Only works with the standard error-first callback signature. Many core modules already ship promise variants (`fs/promises`, `dns/promises`, `timers/promises`) - prefer those over promisifying by hand.

See also