位置: 编程技术 - 正文

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)

  • 个税汇算清缴系统找不到扣缴义务人
  • 已注册登记的机动车有什么情形的
  • 免征增值税的项目如何开发票
  • 车辆报废做账务处理依据的法规是
  • 股东权益合计在报表哪里看
  • 分公司开专票需要缴税
  • 差旅费的现金流
  • 销货清单是否需盖章
  • 中小企业开业税务登记所需资料
  • 跨境电商零售正面清单
  • 收到股东增资款账务处理怎么做账
  • 公司出差员工有权拒绝吗
  • 现金买东西可以退吗
  • 抵减以前年度多缴企业所得税分录
  • 新公司不核税可以吗
  • 发票记账联丢失怎么写情况说明
  • 收到政府补助怎么发朋友圈
  • 国税局公告2020年1号
  • 残保金补报
  • 折价购买债券是什么意思
  • 长期应付款怎么冲减
  • 服务费计入什么收入
  • 鸿蒙系统怎么看运行程序
  • 在win7系统中如何让电脑恢复出厂设置方法
  • php中的header函数
  • 专有技术应当得到
  • 企业注销后账上有结余怎么办
  • 为什么捐赠还要交税
  • 成本法转为权益法例题
  • 资产负债表中其他综合收益怎么填
  • linux搭建web服务器
  • 前端控制台
  • php面向对象优点,缺点
  • 上月未记账,本月不能记账
  • 润滑油一般纳税人税率是多少
  • 社保的残保金的用途
  • python搞自动化
  • 收到退税收入
  • 织梦如何添加浮动广告
  • 二手车交易规则最新
  • 公司向公司借款合法吗
  • 会计的借记和贷记什么意思
  • sql server 2008使用教程
  • 固定资产减值损失计入
  • 政府会计制度应收账款坏账准备
  • 其他应收款的账龄如何计算时间
  • 私车公用产生的费用算不算在公务用车运行维护费中
  • 收到预付卡的发票是否可以报销呢?
  • 公司代缴社保生育津贴大概领多少
  • 投资损益科目
  • 银行贴现手续费可以税前扣除吗
  • 长期未用的定金可以退吗
  • 业务招待费汇算清缴比例
  • 税率调整后税差怎么算
  • 公司缴纳印花税如何缴纳
  • 建筑企业外地预缴
  • 合伙企业是如何成立的
  • 损益平准金结转
  • mysql 性能调优参数
  • sql导入csv数据
  • win 9x
  • window英语
  • linux用户权限管理
  • mac 特殊符号
  • directx device
  • win10无法进入休眠状态的原因
  • win8找不到恢复环境怎么恢复出厂设置
  • 举例说明如何为教学搭建支架
  • nodejs入门教程
  • 记住密码自动登录 会更新登陆信息吗
  • [置顶] 混合、反走样、雾效、多边形偏移
  • jquery常用操作
  • ftp下载工具能自动登录ftp服务器
  • javascript总结笔记
  • js控制style
  • jquery动画让div旋转
  • 安卓网络监测
  • js实现浏览器状态栏显示
  • APP中javascript+css3实现下拉刷新效果
  • 基于Android的人脸门禁系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设