位置: 编程技术 - 正文

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)

  • 个人能否申请延迟退休
  • 交通运输印花税怎么申报
  • 一般纳税人劳务费税率是多少
  • 我国的税种有哪些种类
  • 公司收到生育津贴不发给员工 分录
  • 初次购买金税盘一般多少钱
  • 预提费用在资产负债表里写在哪
  • 合并报表存货增值如何做账
  • 软件产品增值税超税负即征即退
  • 应付利润借方有余额怎么处理
  • 季度30万免增值税2019
  • 工伤医疗费用个人社保卡支付找谁报销
  • 存货的计价方法有哪些,具体内容是什么
  • 凭证更正方法有哪些
  • 补记固定资产
  • 企业用于存货的支出
  • 以前年度损益调整科目怎么用
  • 行政事业单位工会经费支出范围
  • 自营建造固定资产的账务处理
  • 企业筹办期间,发生亏损,应该计算为亏损年度
  • 慈善会可以开什么票据
  • 业务招待费税前扣除规定
  • 增值税税率变动情况
  • 消费税漏缴怎么补缴
  • 认缴制度下实收资本确认条件
  • 中介公司收取中介费过高违法吗
  • php嵌入js
  • 局域网游戏电脑
  • 苹果电脑双系统好不好
  • 资金运动包括哪几个方面
  • 交纳印花税
  • 小规模纳税人按季度申报
  • 新罕布什尔州的邮政编码
  • 前端框架react
  • php中定义常量的函数是什么
  • 语义分割入门教程
  • 发票网上平台勾选流程
  • 新所得税会计准则
  • timit数据集
  • vue从入门到精通教程
  • 出售债券的税费会计分录
  • 增值税留抵税额计入什么科目
  • 不同会计制度资产负债表金额不一样
  • 信用减值损失科目借贷方向
  • 残次品生产成本计算
  • 帝国cms安装教程
  • vue实现响应式的原理
  • 短期股票投资售出
  • 废旧物资专用发票
  • SQL Server 2005通用分页存储过程及多表联接应用
  • 高新企业奖励金怎么开票
  • 核定征收的三种方式
  • 房地产企业扣除土地价款如何申报
  • 无发票材料可以入材料账吗
  • 突然收到财付通转出的钱
  • 银行存款支付投资者投入的款项54万
  • 企业入库申报什么意思
  • 企业召开会议的目的
  • 企业为员工代缴社保怎样在网上申报
  • sql实现行列转换
  • 惠普tpn-c126笔记本
  • java开发经常出差合理吗
  • freebsd中文手册
  • 通过注册表删除脱机打印机
  • windows10x预览版
  • whSurvey.exe - whSurvey进程是什么意思
  • windows7一键还原在哪
  • Win7旗舰版系统镜像文件
  • linux怎么挂载文件夹
  • opengl配置vc6.0
  • node发送短信
  • vuex详细教程
  • 如何利用百度地图定位
  • jquery设置滚动条
  • 国家税务系统
  • 张家港保税区地区生产总值
  • 河北省国家税务局长简介
  • 临沂学生医疗保险多少钱
  • 北京社保个人账户10万元退休金多少
  • 地税申报网上操作步骤
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设