位置: 编程技术 - 正文

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)

  • 增值税一般纳税人税率
  • 土地增值税扣除20%的适用情况
  • 煤炭企业生产能力
  • 合同资产和合同结算
  • 汇算清缴要退税怎么做凭证呢
  • 定期定额征收和核定征收一样吗
  • 电信没有基站为什么信号也很好
  • 进项票和销项票是什么意思
  • 支票罚金
  • 用库存现金支付职工医药费用69元,会计人员
  • 新开商贸公司怎么做账和报税
  • 合作建房的土地出让金在土地增值税中可以加计扣除嘛
  • 营改增后商场进场费如何缴税?
  • 电子承兑背书一般多久到账
  • 核销的方式
  • 托收承付是收到钱了吗
  • 转让资产使用权收入属于什么收入
  • 营改增通知规定的税收优惠政策
  • 长投抵消三步法
  • 社保显示已录入什么意思
  • 成品油电子普通发票开错了
  • 工程类劳务发票
  • 加计扣除10%进项税政策文件
  • 符合条件的小型微利企业减按多少的税率征收企业所得税
  • 劳务费个税计算方式
  • 办公家具折旧年限及计算方法
  • 在windows 7中
  • linux小技巧
  • php get post
  • php实现用户登录
  • 其他债权投资和持有至到期投资的区别
  • 一般纳税人收到小规模专票怎么抵扣
  • vue项目引入axios
  • 计算机视觉姿势评估英语
  • php 遍历树
  • nerf代码
  • centos7编译安装内核
  • 现金流量表哪些数据和资产负债表一致
  • 车间用的液化气计入什么科目
  • mysql中用户和权限的作用
  • sql实例命名规则
  • 金融债券利息收入免企业所得税吗
  • 个人独资企业可以变更法人吗?
  • 普通发票的开具规定是?
  • sqlserver 批量修改
  • sql 分组排名
  • 企业报税流程是什么样的
  • 交易性金融资产是什么意思
  • 购买办公用品如何节约成本
  • a公司持有b公司
  • 餐饮业固定资产怎么摊销
  • 差额征收的有哪些
  • 注册资本未到位注销公司处理
  • 对方开商业承兑汇票给我们
  • 公司员工住宿费标准
  • 应交的教育费附加通过什么科目核算
  • 开发成本贷方负数表示什么
  • 苗木设计方案
  • 多栏式明细账的账页格式适用于
  • 合法有效的凭证是什么
  • sql语句的子查询
  • 如何解开win10电脑密码
  • iexplores.exe是什么病毒
  • .exe是啥程序
  • centos桌面调出命令行
  • 图形化ssh
  • win8系统开机
  • win8自带驱动吗
  • linux不小心删除目录怎么恢复
  • 高通umb
  • shell脚本for循环 计算1到100的和
  • 用python的turtle画图代码
  • 拦截器 aop
  • 背景透明度设置
  • javascript基础编程
  • jquery.form
  • javascript原型
  • 细说javascript
  • Linux开发基于Qt的Android应用指定调试设备
  • 医保漏缴如何补交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设