位置: 编程技术 - 正文

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)

  • 减免税额和免税额一样吗
  • 税前弥补以前年度亏损例
  • 个人所得税一般多久能退下来
  • 企业自产的产品转为自用
  • 一般纳税人9个点可以抵扣吗
  • 按季度申报,利润表中所得税费用怎么算出来的
  • 收到税务局汇算清缴通知
  • 增值税进项税额计算公式
  • 多缴的企业所得税办理退税怎么处理
  • 运输设备折旧费用科目
  • 资产减值准备会计科目编码
  • 品种法怎么计算在产品成本
  • 金税盘减免税额
  • 钉钉报销费用明细怎么写
  • 建筑施工企业的分公司区域公司等较大的
  • 年度所得税汇算清缴表去哪里找
  • 出口企业增值税优惠政策
  • 公司发手机奖励合法吗
  • 累计折旧是备抵类科目吗
  • 增值税一般项目是指什么
  • 公司购买模具的会计科目
  • 把管理费用记到什么科目
  • 会计上金融资产包括哪些
  • 年底会计人员要做什么
  • mac屏幕共享要打开什么权限
  • 什么是土地使用者依照法律规定
  • windows10如何显示桌面图标
  • PHP:xml_set_object()的用法_XML解析器函数
  • 应缴纳所得税额怎么算
  • php加入图片代码
  • 气泡星云图片
  • 一次摊销法计算公式
  • 使用电子计算机生成的会计凭证
  • 微信公众号实现对应查询
  • 中小企业所得税优惠政策2022
  • vue3 element ui
  • 由浅入深英语怎么说
  • php动态生成网页
  • 雪花算法时钟回拨
  • 电子发票手动导出到哪
  • 支付中介费和物业费比例
  • 已经结账的账目怎么冲红
  • 健身房注册公司名称带超字
  • 贷款为什么要把车过户给别人
  • mysql安装配置教程csdn
  • 开房租发票交的税因优惠政策退税如何账务处理?
  • 人力资源服务的发票明细
  • 行政单位福利费管理办法
  • 工会建账需要建几本账
  • 用友t3怎样查明细账
  • 跌价准备如何入库
  • 线上线下财务
  • 管理费用如何核算
  • 建筑业农民工工资个税合理避税
  • 收承兑汇票的利息怎么算
  • 公司卖废品收入要交增值税
  • 为什么记账能省钱
  • 发票报销可以跨月报销吗
  • 明细账填制要求
  • phpstorm配置php环境 mac os
  • mysql事物的作用
  • Windows Server 2016技术第三预览版10537英文版ISO镜像下载泄露
  • linux安装wine命令
  • 看linux系统
  • mac键盘怎么开
  • win8系统设置
  • directx device
  • 苹果笔记本安装win10
  • centos dvd安装
  • 苹果win10更新48%不动了
  • python numpy矩阵
  • javascript基础笔记
  • jquery节点操作
  • 安卓手机与电脑连接方法
  • 北京税务举报投诉
  • 国家税务网上办税平台
  • 地税税额怎么计算
  • 新余契税
  • 江西公积金提取代办
  • 房地产对外投资契税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设