位置: 编程技术 - 正文

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)

  • 一般纳税人开出的普票算销项税额吗
  • 主营业务税金及附加大概比例
  • 购买办公用品为什么不能用现金
  • 发票该如何打印
  • 子公司的所得税是单独缴纳吗
  • 绿化税票多少税率
  • 集团内部资产无偿划转是否纳税增值税
  • 票据到期兑付会怎么样
  • 货车的车辆购置税是多少
  • 贴现法付息什么意思
  • 向公司一般户的银行借款怎么做账?
  • 刷信用卡的手续费去哪了
  • 客户退货不退款会计怎么处理
  • 增值税普通发票怎么开
  • 文化用品利润怎么样
  • 公司未分配利润太大,怎么处理好
  • 2018年用2015年的发票入账有什么税务的风险?
  • 未达起征点纳税申报表怎么填
  • 应交税费应交堤围费的税率多少?
  • 对公人民币转账、汇款(含退汇)分录
  • 建设工程施工包括哪些工程
  • 分配现金股利是什么活动
  • 公司收到个人借款的现金流量
  • 税收法定原则的意义
  • 小规模企业交纳印花税吗
  • 电脑中了勒索病毒要报警吗
  • 关闭通知横幅
  • win 11 发布
  • 少数股东权益怎么填
  • 某企业存货跌价准备原材料科目贷方
  • 怎么认定是否为包工头
  • 存货报废会计分录例题
  • 汇算清缴中企业基础信息表
  • 取得普通发票与专票区别
  • 出口退税率为0怎么处理
  • 购买电子承兑需要给对方开发票吗
  • laypage分页
  • 企业财产租赁税率
  • php获取数据
  • 房地产开发间接费
  • 本月职工工资
  • WINDOWS10系统怎样给电脑分区
  • pytorch基础教程
  • vue @hook
  • 购入固定资产怎么做账务处理
  • 企业和银行对账多久对一次
  • python怎么过滤多余空格
  • 2022年最新电脑操作系统
  • 利得都需要缴纳企业所得税吗
  • 在建工程包括哪些大类科目
  • 农产品收购发票使用范围
  • 航天金税服务费280元每年都交吗
  • 建账之前的业务怎么处理
  • 申报系统中印花税报表怎么填
  • 如何查询对方是否起诉离婚
  • 固定资产折旧的会计凭证
  • 公司股东借款转私人账户
  • 权益性投资包括哪些
  • 餐饮会计做账流程图
  • 商品库存明细账
  • xp系统奇怪
  • demon.exe是什么
  • 网页收集数据
  • python 执行命令
  • js组件是什么
  • android 多线程并发
  • 相片管理必备知识
  • Centos6.8下Node.js安装教程
  • unity减少drawcall
  • unity最新教程
  • html伸缩布局
  • jquery网页设计作业
  • Javascript字符串奇数位替换
  • jquery.serialize() 函数语法及简单实例
  • python toga
  • 北京亦庄开发区属于哪个区
  • 广西地方税务局决算公开表
  • 重庆市劳动监察大队官网
  • 税务开通需要什么东西
  • 耕地占用税免税项目需要计入计税依据吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设