2776. 转换回调函数为 Promise 函数
2025年6月25日小于 1 分钟
2776. 转换回调函数为 Promise 函数
type CallbackFn = (
next: (data: number, error: string) => void,
...args: number[]
) => void
type Promisified = (...args: number[]) => Promise<number>
function promisify(fn: CallbackFn): Promisified {
return (...args) =>
new Promise((res, rej) => {
fn((data, err) => {
if (err) rej(err)
res(data)
}, ...args)
})
}
/**
* const asyncFunc = promisify(callback => callback(42));
* asyncFunc().then(console.log); // 42
*/