当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript Promise catch()用法及代码示例


每当 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 参考文章。



相关用法


注:本文由纯净天空筛选整理自shobhit_sharma大神的英文原创作品 JavaScript Promise catch() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。