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'
```
fn: CustomPromisify<TCustom>
promisify<TResult>(fn: (callback: (err: any,result: TResult,) => void) => void): () => Promise<TResult>
promisify<T1,TResult,>(fn: (arg1: T1,callback: (err: any,result: TResult,) => void,) => void): (arg1: T1) => Promise<TResult>
promisify<T1,T2,TResult,>(fn: (arg1: T1,arg2: T2,callback: (err: any,result: TResult,) => void,) => void): (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>
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>
promisify<T1,T2,T3,>(fn: (arg1: T1,arg2: T2,arg3: T3,callback: (err?: any) => void,) => void): (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>
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>
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>