Skip to main content
promisify - node__util.d.ts - Node documentation
function promisify

Usage in Deno

```typescript import { promisify } from "node:node__util.d.ts"; ```
promisify<TCustom extends Function>(fn: CustomPromisify<TCustom>): TCustom
Takes a function following the common error-first callback style, i.e. taking an `(err, value) => ...` callback as the last argument, and returns a version that returns promises. ```js import util from 'node:util'; import fs from 'node:fs'; const stat = util.promisify(fs.stat); stat('.').then((stats) => { // Do something with `stats` }).catch((error) => { // Handle the error. }); ``` Or, equivalently using `async function`s: ```js import util from 'node:util'; import fs from 'node:fs'; const stat = util.promisify(fs.stat); async function callStat() { const stats = await stat('.'); console.log(`This directory is owned by ${stats.uid}`); } callStat(); ``` If there is an `original[util.promisify.custom]` property present, `promisify` will return its value, see `Custom promisified functions`. `promisify()` assumes that `original` is a function taking a callback as its final argument in all cases. If `original` is not a function, `promisify()` will throw an error. If `original` is a function but its last argument is not an error-first callback, it will still be passed an error-first callback as its last argument. Using `promisify()` on class methods or other methods that use `this` may not work as expected unless handled specially: ```js import util from 'node:util'; class Foo { constructor() { this.a = 42; } bar(callback) { callback(null, this.a); } } const foo = new Foo(); const naiveBar = util.promisify(foo.bar); // TypeError: Cannot read property 'a' of undefined // 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' ```

Type Parameters

TCustom extends Function

Parameters

Return Type

promisify<TResult>(fn: (callback: (
err: any,
result: TResult,
) => void
) => void
): () => Promise<TResult>

Type Parameters

TResult

Parameters

fn: (callback: (
err: any,
result: TResult,
) => void
) => void

Return Type

() => Promise<TResult>
promisify(fn: (callback: (err?: any) => void) => void): () => Promise<void>

Parameters

fn: (callback: (err?: any) => void) => void

Return Type

() => Promise<void>
promisify<
T1,
TResult,
>
(fn: (
arg1: T1,
callback: (
err: any,
result: TResult,
) => void
,
) => void
): (arg1: T1) => Promise<TResult>

Type Parameters

T1
TResult

Parameters

fn: (
arg1: T1,
callback: (
err: any,
result: TResult,
) => void
,
) => void

Return Type

(arg1: T1) => Promise<TResult>
promisify<T1>(fn: (
arg1: T1,
callback: (err?: any) => void,
) => void
): (arg1: T1) => Promise<void>

Type Parameters

T1

Parameters

fn: (
arg1: T1,
callback: (err?: any) => void,
) => void

Return Type

(arg1: T1) => Promise<void>
promisify<
T1,
T2,
TResult,
>
(fn: (
arg1: T1,
arg2: T2,
callback: (
err: any,
result: TResult,
) => void
,
) => void
): (
arg1: T1,
arg2: T2,
) => Promise<TResult>

Type Parameters

T1
T2
TResult

Parameters

fn: (
arg1: T1,
arg2: T2,
callback: (
err: any,
result: TResult,
) => void
,
) => void

Return Type

(
arg1: T1,
arg2: T2,
) => Promise<TResult>
promisify<
T1,
T2,
>
(fn: (
arg1: T1,
arg2: T2,
callback: (err?: any) => void,
) => void
): (
arg1: T1,
arg2: T2,
) => Promise<void>

Type Parameters

T1
T2

Parameters

fn: (
arg1: T1,
arg2: T2,
callback: (err?: any) => void,
) => void

Return Type

(
arg1: T1,
arg2: T2,
) => Promise<void>
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>

Type Parameters

T1
T2
T3
TResult

Parameters

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (
err: any,
result: TResult,
) => void
,
) => void

Return Type

(
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<TResult>
promisify<
T1,
T2,
T3,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (err?: any) => void,
) => void
): (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<void>

Type Parameters

T1
T2
T3

Parameters

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (err?: any) => void,
) => void

Return Type

(
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<void>
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>

Type Parameters

T1
T2
T3
T4
TResult

Parameters

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (
err: any,
result: TResult,
) => void
,
) => void

Return Type

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<TResult>
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>

Type Parameters

T1
T2
T3
T4

Parameters

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (err?: any) => void,
) => void

Return Type

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<void>
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>

Type Parameters

T1
T2
T3
T4
T5
TResult

Parameters

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (
err: any,
result: TResult,
) => void
,
) => void

Return Type

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
) => Promise<TResult>
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>

Type Parameters

T1
T2
T3
T4
T5

Parameters

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (err?: any) => void,
) => void

Return Type

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
) => Promise<void>
promisify(fn: Function): Function

Parameters

fn: Function

Return Type

Function
namespace promisify

Variables

v
promisify.custom
That can be used to declare custom promisified variants of functions.