位置: 编程技术 - 正文

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)

  • 增值税纳税期限1日是什么意思
  • 个人所得税申报方式选哪个比较好
  • 发票领购簿长什么样
  • 存货跌价准备的分录
  • 文化传媒公司开票税点
  • 公司闲置资金理财做了三年定期存款
  • 印花税已经申报在哪里点交费
  • 残次品销售账务处理
  • 实收资本增加的原因
  • 税款差0.01是怎么用会计分录处理
  • 固定资产缩水
  • 一般纳税人取得小规模专用发票可以抵扣吗
  • 转增股如何计算资本公积金?
  • 税务现金流
  • 营改增后开不了增值税发票怎么样办?
  • 小规模纳税人日用品增值税税率
  • 公司注册资金未实缴可以申请破产吗
  • 房地产广告公司月费一般多少
  • 公司双方签订协议书范本
  • 账外资产评估入账固定资产折旧可以税前扣除吗?
  • 电脑任务栏图标怎么移到左边
  • 苹果电脑型号怎么查
  • 设备固定资产原值
  • 想用u盘装系统怎么弄
  • 企业重组后的债务怎么算
  • 不动产经营租赁包括哪些内容
  • 高新技术企业研发费用归集
  • typora修改背景颜色
  • 金税盘不能清卡的原因
  • 小企业会计准则2023电子版
  • 30岁之后去面试
  • 特征融合add
  • 存在现金折扣的会计核算
  • 资本化利息支出现金流量表计入哪里
  • 补发工资账务处理
  • 退伍军人企业所得税优惠
  • 帝国cms如何调用网络
  • 改造后的固定资产入账价值
  • vue$router
  • mongodb连接数
  • 应收票据到期后账务处理
  • 没有购销合同的原因有哪些
  • 固定资产是怎么算出来的
  • 劳务报酬所得税可以退税吗
  • 职工福利费的开支是什么
  • 安防工程注意事项有哪些
  • 固定资产支付的保险费计入成本吗
  • 经营杠杆系数的经济含义
  • 收款人是否应当承担还款责任
  • 应付工资可以挂账多长时间
  • 购建固定资产属于投资活动吗
  • 增值税普通发票可以跨区域开吗
  • 动态sql中返回数组的值
  • 数据库高并发怎么解决
  • sqlserver 查询语句
  • win7系统浏览器怎么设置
  • macbookair网页视频看不了
  • centos配置http
  • zhudongfangyu.exe是什么进程,可以删除吗
  • 强缓存标志
  • 写一个bat文件
  • js中创建对象的几种方法
  • jQuery使用$.ajax进行异步刷新的方法(附demo下载)
  • linux内核结构详解
  • php删除代码
  • bootstrap基础教程书籍
  • websocket方法
  • 安卓app性能测试
  • unity mul函数
  • jquery教程实例
  • js map(parseint)
  • jquery实现点击按钮
  • 税务纪检部门
  • 江西省税务局发票查询平台官网
  • 国税查票系统
  • 一般纳税人做账收费标准
  • 上海房产税税收
  • 税务局经费来源
  • 在外地买车在青岛能买吗
  • 一般纳税人申请流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设