位置: 编程技术 - 正文

Node.js 8 中的 util.promisify的详解(nodejs+ts)

编辑:rootadmin

推荐整理分享Node.js 8 中的 util.promisify的详解(nodejs+ts),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs use,node.js gui,nodejs use,nodejs uuid,nodejs typeorm,nodejs use,nodejs use,nodejs use,内容如对您有帮助,希望把文章链接给更多的朋友!

Node.js 8 于上个月月底正式发布,带来了 很多新特性 。其中比较值得注意的,便有 util.promisify() 这个方法。

util.promisify()

虽然 Promise 已经普及,但是 Node.js 里仍然有大量的依赖回调的异步函数,如果我们每个函数都封装一次,也是?麻烦?麻烦的,比?还麻烦。

所以 Node8 就提供了 util.promisify() 这个方法,方便我们快捷的把原来的异步回调方法改成返回 Promise 实例的方法,接下来,想继续用队列,还是 await 就看需要了。

我们看下范例:

怎么样,很简单吧?按照文档中的说法,只要符合 Node.js 的回调风格,所有函数都可以这样转换。也就是说,满足下面两个条件即可。

最后一个参数是函数 回调函数的参数为 (err, result),前面是可能的错误,后面是正常的结果

结合 Await/Async 使用

同样是上面的例子,如果想要结合 Await/Async,可以这样使用:

Node.js 8 中的 util.promisify的详解(nodejs+ts)

自定义 Promise 化处理函数

那如果函数不符合这个风格,还能用 util.promisify() 么?答案也是肯定的。我们只要给函数增加一个属性,util.promisify.custom ,指定一个函数作为 Promise 化处理函数,即可。请看下面的代码:

如此一来,任何时候我们对目标函数 doSomething 进行 Promise 化处理,都会得到之前定义的函数。运行它,就会按照我们设计的特定逻辑返回 Promise 实例。

我们就可以升级以前所有的异步回调函数了。

Promise 介绍

因为种种历史原因,JS 当中有大量异步函数。这些异步函数,大多要依赖回调进行处理(这里我觉得把事件侦听算作回调也是合理的),但是回调嵌套层次一多,就会形成所谓的“回调陷阱”,让开发者苦不堪言。

为了解决这个问题,开发社区经过摸索,总结出来一套名为 Promise/A+ 的解决方案。大体上来说,这套方案通过使用 “Promise 回调实例”包裹原先的回调函数,可以将原先复杂的嵌套展开、铺平,从而降低开发和维护的难度和成本。

ES(ES6)里包含了 Promise 标准,如今已经在大部分运行时里实装,我们可以放心大胆的使用它。而且,由于 Promise 不需要新的语法元素,所以即使在不支持原生 Promise 的环境里也可以使用类库,比如 Q 或者 Bluebird ,甚至 jQuery 。

在小程序里也有效哟。

ES 增加了 Await/Async 语法,但请注意, Await 后面必须跟 Promise 实例才能实现异步。所以,大家还是把 Promise 的概念学好吧!

标签: nodejs+ts

本文链接地址:https://www.jiuchutong.com/biancheng/382098.html 转载请保留说明!

上一篇:Nodejs回调加超时限制两种实现方法(node 回调函数)

下一篇:详解nodejs模板引擎制作(nodejs function)

  • 旧面包车能跑长途吗
  • 金税盘版开票软件怎么升级
  • 增值税专用发票有效期是多长时间
  • 缴纳企业所得税会计分录怎么做
  • 驾驶员培训服务税率
  • 用友t3采购订单怎么录入
  • 当月开票可以当月缴税吗
  • 出租不动产房屋交什么税
  • 保险公司代扣代缴车船税完税证明
  • 1元转让股权账务实
  • 财务费用手续费有哪些
  • 房地产企业的收入信息披露范围进一步扩大
  • 联营扣点方案
  • 道路施工企业的财务核算包括
  • 税务局拍卖资产
  • 村集体收入所得税率多少
  • 财库联网集中户扣了我的钱
  • 消费税为什么不计入长投成本
  • 资产负债表应收账款是负数怎么回事
  • 月中发当月工资是怎么算的
  • 外币财务报表折算未分配利润采用什么汇率
  • 跟客户合作后发给客户的句子
  • 住宿费和差旅费
  • 简要说明php web的工作流程
  • 微软windows11正式版下载
  • 生产和提供的区别
  • 000.exe病毒
  • 企业委托境外研发所发生的费用
  • 一只正在树上吃的苹果
  • 承兑汇票到期超过10天怎么办
  • css实现轮播图侧边阴影效果
  • 手续费及佣金收入会计分录
  • 承兑找公司贴现合法吗
  • datetime2(7)
  • 增值税减免附加税怎么处理
  • 公章没有数字是什么情况
  • json_server
  • php遍历数组使用的是
  • 旅行社开的发票怎么记账?
  • 电子软件是如何诞生的
  • 个人所得税其他扣除300一个月
  • 给客户的回扣如何做账
  • 教育类财务工作内容
  • 保税仓发货的商品退货要承担税吗
  • 小规模纳税人是季度报税吗
  • 善意取得增值税专用发票所得税
  • 代扣代缴增值税怎么做账
  • 原材料用于在建工程
  • 出售固定资产已开票未收款账务处理
  • 事业单位职工福利费计提标准和使用
  • 供货方代垫运费计入什么科目
  • 废品损失是什么要素
  • 客户赔款会计科目
  • 集团公司对子公司总经理的绩效考核
  • 新建厂房哪些费用可以计入
  • 基本户转账法人会知道吗
  • 增值税是否计入税金及附加
  • 什么是递延所得税?
  • jdbc取数据
  • sql2005和2000区别
  • xp电脑状态栏跑到左边了怎么设置回来
  • xp启用telnet
  • windows xp.exe
  • linux无法登陆
  • msoobe.exe是什么
  • win10大更新2020
  • 左手linux+gdb,右手unity+vs,一个bit一个bit地去调试是种什么体验
  • [置顶] 《借.住.情.缘》
  • shell脚本用法
  • python pdf操作
  • shell脚本获取本地ip
  • 湖北税务官方网
  • 浙江公务员冬令时上班时间
  • 浙江普通发票查验
  • 电子税务局跨区域
  • 四川省国家电子税务局网上申报
  • 河北公示信息网
  • 主题党日活动标题副标题格式
  • 农村墓地规划土地使用程序和规定
  • 国税局对出口退税的要求
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设