位置: 编程技术 - 正文

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)

  • 印花税的实质
  • 附加税申报表里怎么填写
  • 文化事业建设费减免政策
  • 所得税费用是什么要素
  • 简易计税是什么意思?
  • 周转材料低值易耗品的会计处理
  • 物业公司广告费返还会计分录
  • 增值税进项发票网上勾选平台
  • 如何查看发票是否被抵扣
  • 完工百分比法完工进度怎么算
  • 业务招待费如何调增调减
  • 国地税合并后有多少个税种
  • 供应商价格折扣
  • 远期转账支票怎么取钱
  • 购进免税农产品怎么计算进项税额
  • 如何从工商信息中看出是小规模还是一般纳税人
  • 金融企业准备金计提管理办法最新
  • 企业自用房产出售怎么交税
  • 统一社会信用代码证
  • 汇算清缴发票可以做费用票吗
  • 物流公司增项
  • 小企业存货有哪些
  • 招标服务费计算公式
  • 什么叫做区分
  • 笔记本电池保养注意事项
  • 公司销售自己使用过的固定资产
  • linux怎么下载安装腾讯Tim?
  • 东方蝾螈怎么养吃什么
  • 事业单位无职务人员称什么
  • PHP:imagecolorstotal()的用法_GD库图像处理函数
  • 管家婆实物仓库怎么用
  • async/await原理
  • 无形资产属于哪一类
  • react devtools
  • midjourney 初级使用说明
  • 收到国税退回的发票
  • 总公司中标后走账怎么办
  • 用友t6成本核算
  • 哪些增值税发票不可以抵扣
  • 应付票据帐务处理
  • python 索引-1
  • 拆迁支出包括哪些
  • 买轿车产生的服务费用
  • 织梦标签工具
  • Win2003系统下SQL Server 2008安装图解教程(详细图解)
  • 出口企业申报退税不再提供纸质
  • 初级职称需要提交什么资料
  • 国际结算手续费收入增值税
  • 发票开具与小票的关系是怎样的?
  • 私车公用产生的费用如何入账
  • 工业企业分为哪几类
  • 根据银行流水如何计算成本
  • 公司租赁个人车辆租金多少合适
  • 费用支出多了怎么办
  • 库存商品过期报废的会计分录是什么
  • 4s店出售试驾车的增值税是多少
  • 公司招待费用会计分录
  • 小企业如何建立党支部
  • 新成立的公司都是小微企业吗
  • 明细分类账的建账
  • sqli
  • sql server中触发器的作用是什么?
  • mysql 指定my.cnf
  • centos vncviewer
  • win7安装cad2022
  • win8整理磁盘碎片的步骤
  • win8.1最流畅
  • 20150405农历
  • cocos2dx游戏开发教程
  • 安卓开发遇到的问题
  • nodejs image
  • pythone爬虫
  • NGUI之UITexture
  • listview添加按钮
  • 不用税控盘可以勾选发票吗
  • 长沙个体户怎么给员工交社保
  • 北京大兴区地税局电话
  • 小规模纳税人开3%专票怎么交税
  • 某地区土拍的楼盘有哪些
  • 深化体制改革的根本
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设