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