每当 Promise 被拒绝时,就会调用 JavaScript Promise catch() 方法。该方法本身返回一个承诺,因此它也可以用于链接承诺。该方法用于错误处理。此方法主要在 .then 之后使用,以链接 Promise 并处理拒绝条件。此方法在内部调用 .then,并将未定义和拒绝的条件作为参数。
用法:
catch(()=>{})
参数:该方法采用一个回调函数来决定当 Promise 被拒绝时执行什么操作
Return Type: 此方法返回一个处于挂起状态的 Promise,即使前一个 Promise 已完成也是如此。
示例 1:此示例使用 catch 方法来处理 Promise 的拒绝条件。
Javascript
let prom1 = new Promise((resolve, reject) => {
reject("Failure");
})
.then(e => { console.log("Hello Successful") })
.catch((e) => { console.log(e) })
输出:由于 Promise 返回一个拒绝,因此它会转移到 catch 方法,在该方法中接收拒绝的值并将其打印在控制台上。
Failure
示例 2:此示例指定 catch 方法无法捕获错误的条件。
Javascript
let prom1 = new Promise((resolve, reject) => {
setTimeout(() => { throw new Error("Failure") }, 1000);
})
prom1.catch((e) => { console.log(e) })
输出:通常,该错误应该由 catch 块捕获,但由于该错误是由异步函数引发的,因此 catch 块无法处理它。
示例 3:这个方法解释了catch方法不会被调用的情况。
Javascript
let x = 10;
let y = 10;
let prom1 = new Promise((resolve, reject) => {
if (x == y) {
resolve("Equal Values")
} else {
reject("Unequal Values")
}
})
prom1.then((e) => { console.log(e) });
prom1.catch((e) => { console.log(e) })
输出:当 Promise 被解析时,catch 方法不会被调用,因此只有在那时才会调用该方法。
Equal Values
支持的浏览器:
- 谷歌浏览器
- 火狐浏览器
- Opera
- 苹果浏览器
- 边
我们有 Javascript Promise 方法的完整列表,要检查这些方法,请阅读 Javascript Promise 参考文章。
相关用法
- JavaScript Promise finally()用法及代码示例
- JavaScript Promise then()用法及代码示例
- JavaScript Promise any()用法及代码示例
- JavaScript Promise.race()用法及代码示例
- JavaScript Proxy revocable()用法及代码示例
- JavaScript Proxy()用法及代码示例
- JavaScript Math cosh()用法及代码示例
- JavaScript Math sinh()用法及代码示例
- JavaScript Math sin()用法及代码示例
- JavaScript Math cos()用法及代码示例
- JavaScript Math tan()用法及代码示例
- JavaScript Math abs()用法及代码示例
- JavaScript Math pow()用法及代码示例
- JavaScript Math asin()用法及代码示例
- JavaScript Math acos()用法及代码示例
- JavaScript Math atan()用法及代码示例
- JavaScript Math ceil()用法及代码示例
- JavaScript Math floor()用法及代码示例
- JavaScript Math round()用法及代码示例
- JavaScript Math trunc()用法及代码示例
- JavaScript Math max()用法及代码示例
- JavaScript Math min()用法及代码示例
- JavaScript Math sqrt()用法及代码示例
- JavaScript Math sign()用法及代码示例
- JavaScript Math log()用法及代码示例
注:本文由纯净天空筛选整理自shobhit_sharma大神的英文原创作品 JavaScript Promise catch() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。