位置: 编程技术 - 正文

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)

  • 一般纳税人认定表
  • 近三年复合增长是什么意思
  • 淘宝网店女装
  • 建筑企业外管证有效期
  • 一般纳税人主表第一栏数据
  • 建筑物进项税额可以抵扣吗
  • 个体户超过3万交个人所得税
  • 企业收购资金计算公式
  • 停工留薪期工资计算公式
  • 企业股权转让影响利润吗
  • 税务机关如何正确行使代位权
  • 城市规划部门收取的市政建设配套费是否作为契税的征税基数
  • 现金短缺溢余求借多少短期借款?
  • 有哪些发票可以开成餐饮服务
  • 出售资产时递延所得税怎么处理
  • 将自产产品赠送他人
  • 以提供劳务为主营业务的企业
  • 企业所得税虚报成本多少属于犯罪
  • 单位食堂油烟管道清洗记录表
  • 集体土地上的不动产证已经能查询为何房产证拿不到
  • 物业管理企业主营业务收入
  • 携税宝可以全额抵扣吗
  • 车船税不开票吗?
  • 纳税人如何办理纳税申报
  • 母公司吸收合并全资子公司
  • 建筑业劳务分包怎样算税
  • 过路费企业所得税汇算清缴计入什么科目?
  • 为什么红字信息查不到
  • Ubuntu 16.04 Server Edition 英文版安装教程
  • iphone7如何设置输入法
  • 如何测试电脑网速多少兆
  • 收到违反合同的违约金
  • 怎么写会计凭证
  • sistray.exe - sistray是什么进程 有什么用
  • 抵扣农产品进项税时,也要抵扣运费吗
  • vue项目管理器
  • 支付境外设计费合同备案流程
  • 购买二手商住房没有给契税发票和购房发票
  • phpmvc框架工作原理
  • jquery 批量删除
  • 激光器原理及应用
  • Selenium.Webdriver最新语法教程(附Chrome实例演示)
  • 劳务费如何支付
  • 准予扣除业务招标的情形
  • 建筑企业异地预缴增值税计算
  • 联营企业属于关联实体吗
  • 资产总额是指营业收入和营业支出吗
  • mysql proxy问题的解决方法
  • 会计报表编制基本要求
  • 企业增资相关知识点
  • 发票红冲要去税务局吗
  • 建筑企业成本核算案例分析
  • 未交增值税账务处理
  • 用友反结账怎么操作
  • 认证超过限制什么意思
  • 废料入库如何估价
  • 交易性金融资产公允价值变动计入
  • 购进货物用于集体福利会计分录
  • 薪金的定义
  • 新成立的公司如何申请资质
  • 房地产企业的土地使用权计入什么科目
  • vultr vps搭建
  • 偷天换日角色介绍
  • windowsxpwindows7都是
  • macos finder的应用程序列表在哪里
  • ubuntu14.04启动不了
  • centos 软件源
  • win10怎么显示磁盘已用空间
  • 电脑开机后出现win7画面后一直黑屏
  • Win10 Mobile 10586.312提前体验
  • easyui下拉列表
  • jquery如何给div属性赋值
  • js声明集合
  • cmd命令format
  • js中new操作符工作原理
  • 小规模纳税人进口环节的增值税税率
  • 提问:请问海淀区各税务所管辖范围都是哪里?
  • 税务纪检部门
  • 拒绝税务机关检查
  • 我国个人所得税起征点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设