位置: 编程技术 - 正文

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)

  • 农产品 税率
  • 未开票收入退回可以冲税吗
  • 可以公账户给私账转账吗
  • 增值税电子普通发票怎么作废
  • 代收的电费计入什么费用
  • 技术服务税率是多少 现金
  • 行政单位的财务报告包括财务报表和财务情况说明书
  • 混合经营销售额合并计算还是分开计算
  • 进项税额计入其他应付款是什么意思
  • 开票软件服务费不交会怎么样
  • 个人独资企业可以不开公户吗
  • 免抵退和免退税哪种划算
  • 酒店挂账要做收款凭证吗
  • 公司车辆过户给公司需要交哪些税
  • 合并后的新企业有哪些
  • 股权转让流程详解
  • 税收征收管理权是什么
  • 税务稽查补缴增值税税款的账务处理
  • 签证费入什么科目
  • 收到政府部门的奖励金怎么入账
  • 公务车加油入什么科目
  • 溢价购入债权投资是为啥
  • php中数组的概念
  • PHP:curl_multi_exec()的用法_cURL函数
  • 印花税会计分录2023
  • 会计核算形式的定义
  • laravel 入门
  • 收到借款利息会计科目
  • php如何实现
  • php 文件管理系统
  • vue3引入图片
  • Ubuntu18.04安装cuda10.2
  • 企业所得税第二十七条规定
  • 没有实收资本的股权原值
  • 委托代销商品支付的手续费计入什么科目
  • 哪些情况可以开立基本账户
  • 股权变更如何交税
  • mysql文件更改存放路径
  • 代扣代缴个人所得税手续费返还政策
  • 收到科技局研发项目资金计入什么科目
  • 残保金怎么做账务处理
  • 应交税费应交增值税已交税金怎么用
  • 经纪代理代订机票差额专票抵扣
  • 注册资本金印花税税率是2.5还是5
  • 应付账款一直挂着,怎么消掉
  • 应付票据贴现利息收入会计分录
  • 员工垫付的费用怎样记账
  • 支付宝支付高速通行费如何开发票
  • 混合销售行为的概念
  • 银行对账单和回单有什么区别
  • 新收入准则要求
  • 什么是权益性投资企业
  • 计入当期损益是不是计入三大期间费用
  • 商品流通企业流程
  • sql常用命令使用方法
  • sqlserver临时表详解
  • ubuntu系统如何安装qq
  • linux服务器安装虚拟机
  • 主板bios无法重置
  • vssvc.exe
  • macbookair自带系统
  • 使用linux常用命令
  • linux ...
  • centos如何查看所有用户
  • redhat配置
  • Ubuntu系统怎么设置root
  • win10安装 升级
  • mac 硬盘数据恢复
  • linux 文件命名
  • centos6.5升级到7.5
  • linux 截屏
  • linux网络设备有哪些
  • git怎么备份
  • js制作网页制作步骤
  • 源码讲解
  • 安卓获取图片路径
  • 广东国税app安卓版网上预约
  • 土地交易的印花税
  • 公司外购设备对外投资账务处理
  • 企业所得税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设