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

【ES6】Promise推荐用法

一般来说,不要在then()方法里面定义 Reject 状态的回调函数(即then的第二个参数),总是使用catch方法。

// bad
promise.then(function(data) {// success}, function(err) {// error});// good
promise.then(function(data) { //cb// success}).catch(function(err) {// error});

上面代码中,第二种写法要好于第一种写法,理由是第二种写法可以捕获前面then方法执行中的错误,也更接近同步的写法(try/catch)。因此,建议总是使用catch()方法,而不使用then()方法的第二个参数。

跟传统的try/catch代码块不同的是,如果没有使用catch()方法指定错误处理的回调函数,Promise 对象抛出的错误不会传递到外层代码,即不会有任何反应。

const someAsyncThing = function() {return new Promise(function(resolve, reject) {// 下面一行会报错,因为x没有声明resolve(x + 2);});
};someAsyncThing().then(function() {console.log('everything is great');
});setTimeout(() => { console.log(123) }, 2000);
// Uncaught (in promise) ReferenceError: x is not defined
// 123

上面代码中,someAsyncThing()函数产生的 Promise 对象,内部有语法错误。浏览器运行到这一行,会打印出错误提示ReferenceError: x is not defined,但是不会退出进程、终止脚本执行,2 秒之后还是会输出123。这就是说,Promise 内部的错误不会影响到 Promise 外部的代码,通俗的说法就是“Promise 会吃掉错误”。

http://www.lryc.cn/news/149315.html

相关文章:

  • 【JavaScript】版本判断
  • Nano编辑器安装使用指南
  • Java版电子招投标管理系统源码-电子招投标认证服务平台-权威认证
  • Java String类(1)
  • 渗透测试漏洞原理之---【CSRF跨站请求伪造】
  • 带量采购药品数据查询集采分析平台(建议收藏!)
  • 概念解析 | 无线感知的新篇章:异构网络感知的原理与挑战
  • 【大数据模型】让chatgpt为开发增速(开发专用提示词)
  • 读书笔记-《ON JAVA 中文版》-摘要23[第二十章 泛型-2]
  • 【爬虫】5.6 Selenium等待HTML元素
  • 0102阿里云配置3台ECS服务器-大数据学习
  • android 输入法demo
  • 【经验分享】Markdown中如何显示空格和回车
  • 深入篇【C++】set和map(multiset/multimap)特性总结与使用
  • OpenAI推出ChatGPT企业版,提供更高安全和隐私保障
  • Linux虚拟机磁盘扩容
  • 【Go 基础篇】Go语言结构体实例的创建详解
  • 服务器上使用screen的学习记录
  • 基于Django+node.js+MySQL+杰卡德相似系数智能新闻推荐系统——机器学习算法应用(含Python全部工程源码)+数据集
  • 2001-2022年全国各区县最低工资数据
  • D357周赛复盘:模拟双端队列反转⭐⭐+贪心
  • 大数据项目实战(安装Hive)
  • 跨屏无界 | ZlongGames 携手 Google Play Games 打造无缝游戏体验
  • mysql数据文件
  • Vue2里监听localstorage里值的变化
  • QSqlDatabase(2)实例,QTableView显示数据库表数据
  • vue3 监听props 的变化
  • Docker容器
  • spring 请求等问题
  • 汽车制造行业,配电柜如何实施监控?