1. Promise異常處理

Promise異常處理

在JavaScript中灭袁,Promise是一種處理異步操作的方式实昨。然而洞豁,當(dāng)Promise中的操作失敗時(shí),我們需要捕獲并處理這些異常荒给。在這篇文章中丈挟,我們將探討如何在不同的情況下捕獲Promise的異常。

1. 使用.catch()

在Promise鏈的末尾使用.catch()是捕獲Promise異常的最常見方式锐墙。這種方式可以捕獲前面then中發(fā)生的錯(cuò)誤礁哄。

new Promise((resolve, reject) => {
    throw new Error('錯(cuò)誤');
})
.then(result => {
    // 這里不會(huì)執(zhí)行
})
.catch(error => {
    console.log(error);  // 輸出:Error: 錯(cuò)誤
});

2. 在.then()中處理錯(cuò)誤

.then()方法接受兩個(gè)參數(shù),第一個(gè)參數(shù)是處理成功的回調(diào)溪北,第二個(gè)參數(shù)是處理錯(cuò)誤的回調(diào)桐绒。

new Promise((resolve, reject) => {
    throw new Error('錯(cuò)誤');
})
.then(
    result => {
        // 這里不會(huì)執(zhí)行
    },
    error => {
        console.log(error);  // 輸出:Error: 錯(cuò)誤
    }
);

3. 使用async/awaittry/catch

如果你在使用async/await,那么可以使用try/catch來捕獲異常之拨。

async function asyncFunction() {
    try {
        let result = await Promise.reject(new Error('錯(cuò)誤'));
    } catch (error) {
        console.log(error);  // 輸出:Error: 錯(cuò)誤
    }
}

asyncFunction();

4. 未捕獲的Promise異常

如果Promise異常沒有被捕獲茉继,它會(huì)被拋出,并可能導(dǎo)致應(yīng)用程序的崩潰蚀乔。為了避免這種情況烁竭,我們可以監(jiān)聽unhandledrejection事件。

在Node.js中吉挣,我們可以這樣做:

process.on('unhandledrejection', (reason, promise) => {
    console.log('未處理的 rejection:', promise, '原因:', reason);
    // 應(yīng)用的其他邏輯
});

在瀏覽器環(huán)境中派撕,我們也可以監(jiān)聽unhandledrejection事件:

window.addEventListener('unhandledrejection', function(event) {
    console.log('未處理的 rejection:', event.promise, '原因:', event.reason);
    // 應(yīng)用的其他邏輯
});

總結(jié),處理Promise的異常是非常重要的睬魂,它可以幫助我們更好地理解和控制異步操作终吼。希望這篇文章能幫助你更好地理解如何捕獲和處理Promise的異常。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末氯哮,一起剝皮案震驚了整個(gè)濱河市际跪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喉钢,老刑警劉巖姆打,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異肠虽,居然都是意外死亡幔戏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門税课,熙熙樓的掌柜王于貴愁眉苦臉地迎上來评抚,“玉大人豹缀,你說我怎么就攤上這事】” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵啸如,是天一觀的道長侍匙。 經(jīng)常有香客問我,道長叮雳,這世上最難降的妖魔是什么想暗? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮帘不,結(jié)果婚禮上说莫,老公的妹妹穿的比我還像新娘。我一直安慰自己寞焙,他們只是感情好储狭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捣郊,像睡著了一般辽狈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上呛牲,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天刮萌,我揣著相機(jī)與錄音,去河邊找鬼娘扩。 笑死着茸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的琐旁。 我是一名探鬼主播涮阔,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼旋膳!你這毒婦竟也來了澎语?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤验懊,失蹤者是張志新(化名)和其女友劉穎擅羞,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體义图,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡减俏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碱工。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娃承。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡奏夫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出历筝,到底是詐尸還是另有隱情酗昼,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布梳猪,位于F島的核電站麻削,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏春弥。R本人自食惡果不足惜呛哟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望匿沛。 院中可真熱鬧扫责,春花似錦、人聲如沸逃呼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜘渣。三九已至淌铐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蔫缸,已是汗流浹背腿准。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拾碌,地道東北人吐葱。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像校翔,于是被迫代替她去往敵國和親弟跑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 根據(jù)筆者的項(xiàng)目經(jīng)驗(yàn)防症,本文講解了從函數(shù)回調(diào)孟辑,到 es7 規(guī)范的異常處理方式。異常處理的優(yōu)雅性隨著規(guī)范的進(jìn)步越來越高蔫敲,...
    黃子毅閱讀 8,563評(píng)論 7 37
  • Promise 的含義 Promise對(duì)象有以下兩個(gè)特點(diǎn) :(1)對(duì)象的狀態(tài)不受外界影響饲嗽。Promise對(duì)象代表一...
    前端末晨曦吖閱讀 530評(píng)論 0 0
  • 搬運(yùn)學(xué)習(xí),非原創(chuàng) Promise 的含義 Promise對(duì)象有以下兩個(gè)特點(diǎn)奈嘿。 (1)對(duì)象的狀態(tài)不受外界影響貌虾。Pro...
    wsgdiv閱讀 206評(píng)論 0 0
  • Promise對(duì)象是一種解決異步問題的方法,還有的解決方案是asyns 和 await (es7) 這么是目前的終...
    站在大神的肩膀上看世界閱讀 1,264評(píng)論 0 6
  • 前言 為什么要處理前端異常裙犹,有以下幾方面的原因: 提高代碼健壯性:對(duì)于開發(fā)人員來說尽狠,這點(diǎn)很重要衔憨,代碼的健壯性越好,...
    yolkpie閱讀 976評(píng)論 0 0