位置: 编程技术 - 正文

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 获取网页内容
  • 如何用python制作人工智能
  • php文件上传下载代码
  • css中权重值是什么意思
  • 补充医疗保险属于什么
  • 新公司不开户需要交税吗
  • 个体工商户具体工作内容怎么写
  • 申请个体工商户流程
  • 小企业会计准则主要按照什么计量
  • 变更法人代表是重大事项吗
  • 水利基金申报表在哪找
  • 未达起征点的增值税会计处理
  • 最新个人捐款是什么意思
  • sqlserver导入导出数据库
  • 发票验旧后还要缴销吗
  • 个人所得税劳务所得
  • 公司垫付生育津贴后,社保局未报销给公司
  • 纳税调整调减有哪些
  • 劳务发票税率最新标准
  • 查账征收与核定征收在哪里看
  • 所得税不退税怎么写情况说明
  • 修改注册表解决画面撕裂
  • Fedora 9.0 Apache+PHP+MYSQL 环境安装
  • ubuntu20.04怎么用
  • ubuntu18.04单网卡多ip
  • DWHeartbeatMonitor.exe进程是什么意思 DWHeartbeatMonitor是安全的进程吗
  • 在Linux系统中安装虚拟window
  • regsrv.exe - regsrv是什么进程 有什么用
  • win1020h2正式版
  • scchost.exe - scchost是什么进程 有什么用
  • kcleaner是什么文件夹
  • linux文件压缩和备份实验
  • win7旗舰版磁盘清理
  • linux服务器常用操作命令
  • win7开始菜单没有搜索框
  • win7无法更改工作组
  • js移动端布局
  • javascript弹窗函数
  • 辅组什么词?
  • jquery easyui开发指南
  • android事件分发流程图
  • python的linux
  • ar现实增强设备
  • 浅析python中SQLAlchemy排序的一个坑
  • javascript中的getElementById
  • 教大家使用灭火器
  • Python中list初始化方法示例
  • unity spine换装
  • 广东省地方税务局公告2017年第7号
  • 深两优3117审定号
  • 广东省电子税务局app下载手机版
  • 畜牧业企业所得税优惠政策最新
  • 临时增版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设