首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >简单的promisify方法

简单的promisify方法

作者头像
用户7741497
发布2022-04-01 21:24:23
发布2022-04-01 21:24:23
41800
代码可运行
举报
文章被收录于专栏:hml_知识记录hml_知识记录
运行总次数:0
代码可运行

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

例如

代码语言:javascript
代码运行次数:0
运行
复制
(async function () {
    var readFile = promisify(fs.readFile);
    var data = await readFile("./conf.js");
    console.log(data.toString());
})()

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

手写一个promisify如下

代码语言:javascript
代码运行次数:0
运行
复制
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);
        });
    }
}

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档