美文网首页
手写个简单的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