當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。