位置: 编程技术 - 正文

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万以内免税
  • 小规模纳税人已过开票截止日期禁止开票怎么办
  • 需要进项税额转出的发票还用勾选吗
  • 减免税款的会计分录摘要
  • 土地成本包含什么
  • 金税系统怎么录入专票
  • 先付款后开票是预付吗
  • 结转城建税和教育费附加
  • 免征增值税的免税政策
  • 拆装厂房
  • 工程违约金收入如何入账
  • 预付款发票未到如何入成本
  • 生产企业出口退税流程及账务处理
  • 开采石头要交什么税
  • 合伙企业个人所得税经营所得怎么申报
  • 建筑增值税抵扣怎么算
  • 小微企业免征增值税报表填写
  • 个体虚开普通发票罪立案标准
  • 职工福利费支出计入什么科目
  • 累计折旧要结转到本年利润吗
  • 个税手续费收入要交税吗
  • 同城提入业务包括
  • 持有至到期投资账务处理
  • 个人开票给公司有什么风险
  • 外购无形资产发生的交易费用
  • Windows11更新后无法联网
  • 怎样跳过windows开机更新
  • 私车公用维修费属于个人承担吗
  • vue数据处理在哪个阶段
  • 二手商铺要缴纳契税吗
  • 一次性收入怎么交税
  • 勃朗峰高度
  • oracleupdate关联表
  • 亏损企业所得税怎么交
  • 微信小程序开发者工具
  • 小微企业会计制度是什么
  • 网络购发票怎么读入
  • 限定性净资产的限定主体是
  • 固定资产折旧方法和计算公式
  • 单位财务报销制度和流程
  • 购入不动产进项税额怎么抵扣
  • 企业收到海河工厂发运的乙材料,并验收入库
  • 税务机关如何对个人股东股权财务报表审核
  • 长期股权投资的初始投资成本
  • 租赁设备如何做会计分录
  • 收到银行承兑汇票后,如何取钱
  • 接受捐赠后怎么发表感言
  • 发票边上的孔有什么用
  • 累计摊销可以做什么分录
  • 工会经费属于什么会计科目?
  • 新成立的分公司怎么样
  • mysql深度解析
  • mysql5.5.62安装教程图解
  • 在sql server
  • xp系统控制面板在哪里打开
  • 在unix系统中采用的页面置换
  • centos查看当前yum源
  • 使用移动硬盘快速启动
  • 五笔输入法怎么切换中文
  • win7网络正常网页打不开是什么原因
  • linux+c
  • window10提示更新总是
  • 微信小程序获取手机号失败
  • js object.seal
  • perl use of uninitialized
  • cocos2d怎么用
  • node web 框架
  • 我吐槽你
  • arp绑定用户直接上网是什么意思
  • [置顶]从lv2开始开挂的原勇者候悠闲的异世界生活
  • 批处理脚本怎么写
  • python最简单
  • 简述javascript中的函数
  • 地下车库是否缴房产税
  • 是否一般纳税人怎么查
  • 新疆12366网上办税
  • 开票风险预警机制蓝色预警怎么办
  • “老师你好”
  • 收取广告费收入怎么入账
  • 成都车辆购置税2024年新政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设