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
});
```
(callback: (err: ErrnoException) => void) => void
a callback style function
callbackify<TResult>(fn: () => Promise<TResult>): (callback: (err: ErrnoException,result: TResult,) => void) => void
callbackify<T1>(fn: (arg1: T1) => Promise<void>): (arg1: T1,callback: (err: ErrnoException) => void,) => void
callbackify<T1,TResult,>(fn: (arg1: T1) => Promise<TResult>): (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
callbackify<T1,T2,TResult,>(fn: (arg1: T1,arg2: T2,) => Promise<TResult>): (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
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
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
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
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
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
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