当前位置: 首页 > news >正文

我不知道的promise

  • promise在resolve之后 再抛出错误并不会被捕获,等于没有抛出,个人理解是状态改变之后就不会再次改变。

  • 错误具有冒泡的特性,会一直向后传递,直到被捕获为止,但是不会冒泡到全局。跟传统的try catch 语句不同的是,如果没有使用catch 语句指定错误处理的回调函数,promise 对象抛出的错误不会传递到外层代码
  • Catch方法返回的还是一个promise 对象,因此后面还可以接着调用then方法,如果没有报错则跳过该catch 方法,需要注意的是,如果在catch 语句以后再抛出错误则无法捕获。
  • done 方法总是出于回调链的微端,保证抛出任何可能出现的错误(向全局)
  • 值穿透:如果在then方法或是catch方法中传入的不是函数则会穿透,像是没有传入。
  • 实现并行,不好的做法是使用forEach遍历执行promise,可以使用Promise.all
    getAsyncArr().then(promiseArr => { return promise.all(promiseArr); }) .then(res => console.log(res))
  • 实现串行执行,那我们可以利用reduce来处理串行执行
    var pA = [ function() {return new Promise(resolve => resolve(1))}, function(data) {return new Promise (resolve(1 + data))} ] pA.reduce((prev, next) => prev.then(next).then(res=>res), Promise.resolve()).then(res => console.log(res))

转载于:https://www.cnblogs.com/nanshanlaoyao/p/6666677.html

相关文章:

  • background-image的url
  • 我是如何处理大并发量订单处理的 KafKa部署总结
  • iframe--的一些方法
  • 重定位
  • shell命令_tr基础
  • 【数据库系列_概念】1数据库概念学习——基本概念术语
  • 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
  • test命令用法。功能:检查文件和比较值
  • iOS项目之模拟请求数据
  • [转]你可能不知道的10个JavaScript小技巧
  • Cobbler自动装机--2
  • shell 空格
  • bzoj 1189: [HNOI2007]紧急疏散evacuate
  • 项目总结
  • 资源更新服务器
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 5、React组件事件详解
  • IDEA常用插件整理
  • Java教程_软件开发基础
  • nginx 配置多 域名 + 多 https
  • PAT A1092
  • React-Native - 收藏集 - 掘金
  • REST架构的思考
  • Webpack 4x 之路 ( 四 )
  • 半理解系列--Promise的进化史
  • 动态规划入门(以爬楼梯为例)
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 给github项目添加CI badge
  • 关于springcloud Gateway中的限流
  • 简析gRPC client 连接管理
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • #define用法
  • #大学#套接字
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (LeetCode 49)Anagrams
  • (八)Spring源码解析:Spring MVC
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)linux 命令大全
  • (转)ObjectiveC 深浅拷贝学习
  • (转)Oracle存储过程编写经验和优化措施
  • (转)Scala的“=”符号简介
  • .axf 转化 .bin文件 的方法
  • .a文件和.so文件
  • @GetMapping和@RequestMapping的区别
  • @TableLogic注解说明,以及对增删改查的影响
  • [@Controller]4 详解@ModelAttribute
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [BZOJ] 2427: [HAOI2010]软件安装
  • [C#]C# OpenVINO部署yolov8图像分类模型
  • [cb]UIGrid+UIStretch的自适应