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

Usage in Deno

```typescript import { callbackify } from "node:node__util.d.ts"; ```
callbackify(fn: () => Promise<void>): (callback: (err: ErrnoException) => void) => void
Takes an `async` function (or a function that returns a `Promise`) and returns a function following the error-first callback style, i.e. taking an `(err, value) => ...` callback as the last argument. In the callback, the first argument will be the rejection reason (or `null` if the `Promise` resolved), and the second argument will be the resolved value. ```js import util from 'node:util'; async function fn() { return 'hello world'; } const callbackFunction = util.callbackify(fn); callbackFunction((err, ret) => { if (err) throw err; console.log(ret); }); ``` Will print: ```text hello world ``` The callback is executed asynchronously, and will have a limited stack trace. If the callback throws, the process will emit an `'uncaughtException'` event, and if not handled will exit. Since `null` has a special meaning as the first argument to a callback, if a wrapped function rejects a `Promise` with a falsy value as a reason, the value is wrapped in an `Error` with the original value stored in a field named `reason`. ```js 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 }); ```

Parameters

fn: () => Promise<void>
An `async` function

Return Type

(callback: (err: ErrnoException) => void) => void
a callback style function
callbackify<TResult>(fn: () => Promise<TResult>): (callback: (
err: ErrnoException,
result: TResult,
) => void
) => void

Type Parameters

TResult

Parameters

fn: () => Promise<TResult>

Return Type

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

Type Parameters

T1

Parameters

fn: (arg1: T1) => Promise<void>

Return Type

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

Type Parameters

T1
TResult

Parameters

fn: (arg1: T1) => Promise<TResult>

Return Type

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

Type Parameters

T1
T2

Parameters

fn: (
arg1: T1,
arg2: T2,
) => Promise<void>

Return Type

(
arg1: T1,
arg2: T2,
callback: (err: ErrnoException) => void,
) => void
callbackify<
T1,
T2,
TResult,
>
(fn: (
arg1: T1,
arg2: T2,
) => Promise<TResult>
): (
arg1: T1,
arg2: T2,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void

Type Parameters

T1
T2
TResult

Parameters

fn: (
arg1: T1,
arg2: T2,
) => Promise<TResult>

Return Type

(
arg1: T1,
arg2: T2,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void
callbackify<
T1,
T2,
T3,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<void>
): (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (err: ErrnoException) => void,
) => void

Type Parameters

T1
T2
T3

Parameters

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<void>

Return Type

(
arg1: T1,
arg2: T2,
arg3: T3,
callback: (err: ErrnoException) => void,
) => void
callbackify<
T1,
T2,
T3,
TResult,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<TResult>
): (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void

Type Parameters

T1
T2
T3
TResult

Parameters

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<TResult>

Return Type

(
arg1: T1,
arg2: T2,
arg3: T3,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void
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: ErrnoException) => void,
) => void

Type Parameters

T1
T2
T3
T4

Parameters

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

Return Type

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (err: ErrnoException) => void,
) => void
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: ErrnoException | null,
result: TResult,
) => void
,
) => void

Type Parameters

T1
T2
T3
T4
TResult

Parameters

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<TResult>

Return Type

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void
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: ErrnoException) => void,
) => void

Type Parameters

T1
T2
T3
T4
T5

Parameters

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

Return Type

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (err: ErrnoException) => void,
) => void
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: ErrnoException | null,
result: TResult,
) => void
,
) => void

Type Parameters

T1
T2
T3
T4
T5
TResult

Parameters

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

Return Type

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void
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: ErrnoException) => void,
) => void

Type Parameters

T1
T2
T3
T4
T5
T6

Parameters

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

Return Type

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
callback: (err: ErrnoException) => void,
) => void
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: ErrnoException | null,
result: TResult,
) => void
,
) => void

Type Parameters

T1
T2
T3
T4
T5
T6
TResult

Parameters

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
) => Promise<TResult>

Return Type

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void