美文网首页
手写个简单的promisify方法

手写个简单的promisify方法

作者: IT飞牛 | 来源:发表于2021-02-22 21:37 被阅读0次

node中为了能方便使用async/await语法,通常会使用promisify方法将node中遵循错误优先的api接口转换,返回一个Promise实例,从而无缝衔接使用async/await语法;

例如

(async function () {
    var readFile = promisify(fs.readFile);
    var data = await readFile("./conf.js");
    console.log(data.toString());
})()

以上案例读取conf.js,并打印,使用promisify转换fs.readFile

手写一个promisify如下

function promisify(fn) {
    return function (...args) {
        return new Promise(function (resolve, reject) {
            args.push(function (err, ...arg) {
                if (err) {
                    reject(err);
                    return;
                }
                resolve(...arg);
            });

            fn.apply(null, args);
        });
    }
}

相关文章

网友评论

      本文标题:手写个简单的promisify方法

      本文链接:https://www.haomeiwen.com/subject/lqusvktx.html