位置: 编程技术 - 正文

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)

  • 可以抵扣的进项税额是什么意思
  • 私车公用如何处理
  • 事业单位长期股权投资持有期间被投资单位
  • 长期股权投资中应采用成本法核算的是
  • 城建税减半从什么时候开始
  • 发票未到怎么暂估入账
  • 高新企业收到政府补贴会计分录
  • 建筑服务预征缴纳税款本期实际抵减税额怎么填
  • 研发费用资本化支出
  • 小额贷款公司的钱从哪里来
  • 土地出让金返还的禁止性规定
  • 怎么计提应交税费
  • 补充医疗保险能自己交吗
  • 以前年度做的预算怎么查
  • 资产收益权转让产品
  • 投资公司的利息支出可抵扣吗
  • 企业盈利后又亏损怎么算
  • 技术转让税收优惠政策500万
  • 高速公路通行费发票怎么开
  • 工业企业该怎样建账?
  • 劳务发票备注怎么填
  • 其他应付款可以用其他应收款代替吗
  • 实收资本减少会不会变相影响注册资本金
  • 企业的无形资产包括哪些内容
  • 资源税可能计入
  • 发票单据流水号
  • 烟花爆竹入库须知
  • 银行年费通过什么渠道交
  • pavfires.exe - pavfires是什么进程 有什么用
  • 装win7提示失败怎么办
  • 未注销的坏账可以转出吗
  • 长期债券投资业务处理
  • 增值税的特殊项目
  • 固定资产维修费计入固定资产吗
  • chat gpt 国内版免费手机
  • readline只读一行
  • 购买超市购物卡会计分录
  • 收回已核销的坏账并入账是什么意思
  • python累加求和代码,直到最后一项小于10^-6
  • 一联发票可以开多少钱
  • 供热企业税收优惠
  • 企业扣税方式
  • phpcms使用教程
  • mysql临时表什么时候销毁
  • 为什么结转材料成本差异
  • 企业所得税实训内容及过程
  • 个人购销合同范本
  • 亏损企业研发费用必须加计扣除吗
  • 接受捐赠的固定资产按什么入账
  • 高新技术企业核心人才保险
  • 现金比率合适范围
  • 其他收益和其他综合收益区别
  • 出口退税账务处理难吗
  • 退差价后退货
  • 生产经营年度汇算清缴
  • 其他业务收入与其他业务成本的关系
  • 即征即退的增值税退城建税吗
  • 实缴资本和注册资本的比例
  • 医药企业研发费用构成
  • 应付职工薪酬讲解
  • mysql a.
  • windows vista安装光盘进入dos
  • windowssystem32configsystem下载
  • 打造安全稳定
  • linux系统的主要功能
  • 怎么使用winpe
  • xp启动时间长
  • rsync服务端配置
  • win7系统本地连接图标不见了
  • win70
  • windows8用的人少
  • 彻底理解样本方差为何除以n-1
  • python for key in
  • nodejs快速入门
  • 浅谈python中的实例方法、类方法和静态方法
  • jquery日历框有长期的选项
  • 用shell写一个脚本,对文本中无序的一列数字排序
  • jquery怎么实现单页面
  • python爬虫从入门到精通
  • js实现拖拽功能
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设