精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

再見 try/catch,我有更好的選擇了!

開發 前端
寫 JavaScript 的人都知道,try/catch 雖然是處理異步錯誤的“正道”,但一旦多起來,整個代碼就開始變得臃腫、重復、難讀。

前端異步代碼里的錯誤處理,大多數人第一反應還是 try/catch。它能解決問題,但寫多了難免覺得啰嗦:嵌套多、邏輯被打斷,讀起來也不太舒服。

所以這幾年,越來越多項目開始嘗試別的方式——寫法更輕,結構更清晰。

這篇文章就來聊聊三種替代方案:一個語言層的提案,一個可以自己封裝的小工具,還有一個現成的社區庫。選好用的方式,能讓錯誤處理簡單不少。

傳統 try/catch 的痛點

寫 JavaScript 的人都知道,try/catch 雖然是處理異步錯誤的“正道”,但一旦多起來,整個代碼就開始變得臃腫、重復、難讀。

你可能見過這種寫法:

try {
  const data = await fetchUser();
  doSomething(data);
} catch (e) {
  console.error('出錯了', e);
}

寫一兩個還好,但如果你有十幾個異步調用,每個都要包一層 try/catch,不僅煩,而且破壞代碼結構。不少人甚至為了偷懶,直接不處理錯誤或者一把包住:

try {
  // 一大堆 await
} catch (e) {
  // 一個錯誤搞不清是哪里來的
}

有沒有更好的寫法?有,而且不止一種。

語言層面的嘗試:try 操作符提案

一個值得關注的思路來自一個全新的語言提案,它設想在 JavaScript 中引入一種新的 try 表達式語法,它不是語句,而是一個表達式。

提案地址:https://github.com/arthurfiorette/proposal-try-operator

const [ok, err, result] = try await fetchUser();

這個寫法的意思很明確:

  • 如果成功,ok 是 true,result 有值;
  • 如果失敗,ok 是 false,err 是錯誤對象。

這樣一來,不僅避免了冗長的 try/catch,還天然具備結構化的錯誤處理方式。

const [ok, err, user] = await safeAwait(fetchUser());

if (!ok) {
  console.error('請求失敗:', err);
  return;
}

console.log('用戶數據:', user);

是不是很像 Go 的 val, err := fn(),或者 Rust 的 Result?這就是提案的核心:讓錯誤處理從控制流轉向值表達式。

雖然這個提案還在 Stage 1,離真正進入 JavaScript 還有一段距離,但它提出了一種很有前景的思路:

錯誤不一定要“捕獲”,也可以像值一樣被“解構”。

自定義封裝:手寫一個 safeAwait

語言層還沒進化?那我們就自己造個輪子。

一個常見的思路是:將 Promise 的執行結果封裝成一個三元組 [ok, err, data],結構明確,邏輯清晰。來看實現:

export type SafeAwaitResult<T> =
  | [true, null, T]
  | [false, Error, null];

exportasyncfunction safeAwait<T>(promise: Promise<T>): Promise<SafeAwaitResult<T>> {
try {
    const result = await promise;
    return [true, null, result];
  } catch (err: any) {
    const error = err instanceofError ? err : newError(String(err));
    return [false, error, null];
  }
}

使用時非常直觀:

const [ok, err, user] = await safeAwait(fetchUser());

if (!ok) {
  console.error('請求失敗:', err);
  return;
}

console.log('用戶數據:', user);

這套封裝的好處是顯而易見的:

  • 語義清晰:ok 表示狀態,err 和 data 結構穩定
  • 無 try/catch:邏輯更線性,閱讀友好
  • 類型明確:配合泛型推導,IDE 提示清晰
  • 易于復用:在整個項目中統一處理異步異常

而且你還可以鏈式使用,避免回到嵌套地獄:

const [ok1, err1, user] = await safeAwait(fetchUser());
if (!ok1) return handle(err1);

const [ok2, err2, posts] = await safeAwait(fetchPosts(user.id));
if (!ok2) return handle(err2);

renderDashboard(user, posts);

這種寫法非常適合搭配中間件、hooks 或服務層封裝,逐漸成為許多項目的標準做法。

用庫更香:await-to-js 一步到位

如果你不想自己封裝,還有一個現成、穩定的庫可以用:await-to-js

它的設計初衷和 safeAwait 類似,把 Promise 的結果轉成 [error, result] 形式:

npm install await-to-js

使用方法如下:

import to from 'await-to-js';

const [err, data] = await to(fetchUser());

if (err) return handle(err);

render(data);

如果你的項目希望快速接入結構化的錯誤處理,不妨試試這個庫。

總結對比:三種錯誤處理方案

方法

優點

缺點

適合場景

try/catch

原生支持,語義明確

冗長、嵌套、難組合

控制分支復雜的邏輯

safeAwait

(自定義)

簡潔清晰,類型安全,可組合

需要維護封裝結構

中大型項目,統一風格

await-to-js

(第三方庫)

即裝即用,社區成熟

多一個依賴

快速落地,團隊協作

函數式時代的錯誤處理該進化了

在今天,繼續用 try/catch 處理每一個異步錯誤,已經有些過時。無論是語言層面的提案,還是我們可以自己實現的封裝,甚至是社區提供的優秀工具,目的都是一樣的:讓錯誤處理變得更清晰、更優雅、更現代。

再見了,重復的 try/catch,寫更清爽的代碼,從現在開始。

責任編輯:趙寧寧 來源: 前端充電寶
相關推薦

2020-06-15 08:12:51

try catch代碼處理器

2025-05-19 10:04:48

2024-10-09 08:48:52

2023-08-07 11:47:53

Poetry工具軟件包

2020-08-24 13:35:59

trycatchJava

2025-02-12 12:00:00

前端try-catchJavaScrip

2020-12-29 10:36:34

互聯網數據技術

2020-09-27 07:48:40

不用try catch

2023-05-26 01:05:10

2024-12-02 11:07:24

Java代碼機制

2020-05-29 08:14:49

代碼Try-Catch程序員

2024-05-24 08:59:15

2021-01-05 07:54:55

事項trycatch

2009-12-02 19:56:33

PHP中try{}ca

2023-09-07 07:53:21

JavaScriptGoRust

2021-03-31 11:52:24

try-catch-fJava代碼

2022-03-01 07:37:30

MySQL場景框架

2021-12-08 08:28:34

工具 offer業務

2024-06-25 10:37:11

2023-05-16 15:32:45

JavaScriptWeb前端工程師
點贊
收藏

51CTO技術棧公眾號

欧美成人激情| 日韩三区免费| av在线免费不卡| 日本在线精品视频| 欧美激情精品久久久久久免费 | 国产第一区电影| 精品国产成人亚洲午夜福利| 24小时成人在线视频| 亚洲综合清纯丝袜自拍| 免费av在线一区二区| 中文字幕在线视频免费| 黄色成人91| 精品亚洲男同gayvideo网站| 一区二区三区四区毛片| 丝袜诱惑一区二区| 亚洲另类在线视频| 日韩在线观看电影完整版高清免费| 99国产精品欲| 丝袜亚洲另类欧美| 欧美激情网站在线观看| 免费一级黄色录像| 麻豆精品av| 3d成人h动漫网站入口| 亚洲熟妇无码av在线播放| 丁香婷婷在线观看| 成人av网址在线观看| 成人精品在线观看| aaaaaa毛片| 亚洲激情视频| 欧美老肥婆性猛交视频| 天堂av免费在线| 伊人成综合网yiren22| 精品国产免费一区二区三区四区 | 久久婷婷色综合| 99在线观看视频| 91亚洲国产成人精品一区| 性高湖久久久久久久久| 欧美精品久久久久久久免费观看| 波多野结衣久久久久| 狠狠做深爱婷婷综合一区| 亚洲成人在线网| 涩多多在线观看| 韩日精品一区| 一本到三区不卡视频| 欧美精品久久久久久久久久久| 毛片在线视频| 国产精品欧美极品| 日韩经典在线视频| 国产青青草在线| xfplay精品久久| 国产伦精品一区二区三区视频免费 | 搞黄视频免费在线观看| 91日韩精品一区| 好吊妞www.84com只有这里才有精品| 99久久婷婷国产一区二区三区| 日本成人中文字幕| 国产精品免费久久久| 日本三级一区二区三区| 日本不卡高清视频| 国产精品jizz在线观看麻豆| 无码视频一区二区三区| 玖玖国产精品视频| 国产精品扒开腿做爽爽爽的视频| 亚洲av无码精品一区二区| 久久亚洲风情| 国产精品视频一| 国产又粗又猛视频| 国产精品自拍在线| 99国产高清| 人妻va精品va欧美va| 99精品视频中文字幕| 含羞草久久爱69一区| 天堂av在线资源| 国产网站一区二区| 亚洲精品久久久久久一区二区| 色多多视频在线观看| 亚洲精品中文字幕在线观看| 国产成人永久免费视频| 天堂在线中文网官网| 欧美无砖砖区免费| 91人妻一区二区三区| 国产精品zjzjzj在线观看| 亚洲精品影视在线观看| 国产精品酒店视频| 欧美1区2区| 欧美亚洲第一页| 一级特黄aaa大片在线观看| 国产麻豆视频一区| 久久久久欧美| 免费人成在线观看播放视频| 亚洲一区二区三区激情| 37pao成人国产永久免费视频| 99久久婷婷国产综合精品首页| 538prom精品视频线放| 中文字幕第九页| 国产一区不卡| 久久久在线观看| 国产情侣小视频| 国产二区国产一区在线观看| 蜜桃视频在线观看成人| 成年人黄视频在线观看| 日韩欧美一区视频| www.日本久久| 欧美**字幕| 久久97精品久久久久久久不卡| 二区视频在线观看| 国产一区三区三区| 蜜桃麻豆www久久国产精品| dj大片免费在线观看| 欧美视频在线观看 亚洲欧| 日本高清一区二区视频| 香蕉久久精品| 欧美成人精品影院| 国产成人麻豆免费观看| 福利视频网站一区二区三区| 亚洲激情一区二区| 国产盗摄精品一区二区酒店| 欧美午夜精品久久久| 国产国语性生话播放| 亚洲高清影视| 国产精品日本精品| 色综合久久网女同蕾丝边| 亚洲三级在线免费| 亚洲无吗一区二区三区| 丝袜连裤袜欧美激情日韩| 大胆人体色综合| 瑟瑟视频在线免费观看| 91在线播放网址| 精品无码国产一区二区三区av| 婷婷丁香久久| 少妇高潮久久久久久潘金莲| www.com亚洲| 99久久国产综合精品色伊| 日本道在线视频| 午夜不卡一区| 日韩亚洲精品电影| 中文字幕 自拍偷拍| 久久久久亚洲综合| 免费看又黄又无码的网站| 视频一区国产| 欧美插天视频在线播放| 97在线公开视频| 国产精品久久久久久久久久免费看| 欧美一级黄色片视频| 欧美a一欧美| 97av在线视频免费播放| 日本精品一区二区在线观看| 亚洲国产精品嫩草影院| 精品一区二区视频在线观看| 激情综合久久| 国产欧美日韩在线播放| 国产伦子伦对白在线播放观看| 精品嫩草影院久久| 日韩久久精品视频| 91蝌蚪porny| 日本在线观看a| 欧洲杯足球赛直播| 国产免费一区视频观看免费| 香蕉视频在线免费看| 欧美高清激情brazzers| 中文字幕无码日韩专区免费 | 国产精品中文久久久久久久| 成人免费在线电影| 欧美性猛片xxxx免费看久爱 | 一区二区三区免费看视频| 岛国大片在线免费观看| 国产综合久久| 久久综合九色综合久99| 欧美成a人片在线观看久| 伊人伊成久久人综合网站| 91精品国产色综合久久不8| 中文字幕一区二区不卡| 精产国品一二三区| 亚洲精品孕妇| 亚洲春色在线视频| 精品亚洲二区| 91国在线精品国内播放| 国产天堂素人系列在线视频| 欧美日本乱大交xxxxx| 欧美成人一区二区三区高清| av在线这里只有精品| www.xxx亚洲| 一区二区三区午夜探花| 精品免费国产| 国产美女久久| 国内偷自视频区视频综合| 国产在线91| 91精品国产乱码久久蜜臀| 亚洲一区欧美在线| 国产精品色呦呦| 岛国精品一区二区三区| 日韩制服丝袜av| 91精品一区二区三区四区| 亚洲第一二三区| 91精品啪在线观看麻豆免费| 欧美日韩在线观看首页| 久久精品视频网站| 三级理论午夜在线观看| 91超碰这里只有精品国产| 国产成人在线免费观看视频| 国产精品久久久99| 成人性生活免费看| 精品在线播放免费| 久草热视频在线观看| 欧美在线免费一级片| 欧美在线视频一区二区三区| 日本免费一区二区三区视频| 国产aⅴ夜夜欢一区二区三区| 18在线观看的| 在线播放国产一区二区三区| 六月婷婷综合网| 欧美绝品在线观看成人午夜影视| 国产精品国产三级国产专区52| 综合色中文字幕| av手机在线播放| 99久久免费国产| 久久人人爽人人片| 日韩不卡一区二区| 日本一道本久久| 欧美精品一线| 国产免费一区二区三区四在线播放| 久久99精品久久久久久园产越南| 国产精品theporn88| 国产精品国产亚洲精品| 国产精品久久久久久搜索 | 国内揄拍国内精品久久| 在线观看日本一区| 精品国产一区二区三区久久久樱花| 国产精品区二区三区日本| 国产精品777777在线播放| 国产精品视频男人的天堂| 456亚洲精品成人影院| 欧洲成人午夜免费大片| a国产在线视频| 欧美福利视频在线| av免费在线免费| 久久影院免费观看| 日韩伦理在线电影| 中文字幕日韩av综合精品| 国产在线观看网站| 亚洲天堂av网| 成人高清免费观看mv| 亚洲深夜福利在线| 精品福利视频导航大全| 亚洲欧美另类自拍| 内衣办公室在线| 亚洲男人第一av网站| 欧美精品久久久久久久久久丰满| 精品一区二区三区三区| 日本一区二区三区在线观看视频| 日韩av影院在线观看| 婷婷开心激情网| 亚洲精品久久久久中文字幕欢迎你 | 精品国产三级a在线观看| 日韩中文字幕免费在线观看| 亚洲第一视频在线观看| 天堂中文在线观看视频| 亚洲精品不卡在线| 欧美婷婷久久五月精品三区| 亚洲欧美国产视频| 99中文字幕一区| 久久精品小视频| 日韩三级电影视频| 性视频1819p久久| 中文字幕在线看片| 国产精品视频一| 狂野欧美xxxx韩国少妇| 国产精品有限公司| 日韩av中文字幕一区| 人偷久久久久久久偷女厕| 999久久久精品国产| 成人手机在线播放| 亚洲日本成人| 已婚少妇美妙人妻系列| 久久精品99国产精品日本| 亚洲综合123| 99视频超级精品| 性の欲びの女javhd| 亚洲卡通动漫在线| 国产成人精品片| 欧美性大战久久久| www.色亚洲| 亚洲美女av黄| 黄色成人在线| 97成人精品区在线播放| 亚洲国产尤物| 国产精品18毛片一区二区| 精品久久中文| 国产高清不卡无码视频| 爽好多水快深点欧美视频| 日本在线观看视频一区| 99久久精品免费观看| 亚洲一二三四视频| 亚洲国产日韩精品| 亚洲精品一区二区二区| 精品成人私密视频| 91福利在线视频| 97国产精品人人爽人人做| 成人看片毛片免费播放器| 成人蜜桃视频| 成人免费在线观看av| www.av片| 国精产品一区一区三区mba视频| 呦呦视频在线观看| 亚洲精品免费播放| 日批视频免费观看| 亚洲成人av在线播放| 欧美jizzhd欧美| 热99精品里视频精品| 亚洲日本视频在线| 亚洲一区二区三区免费看| 国产日韩亚洲| 少妇高潮一69aⅹ| 亚洲国产精品99久久久久久久久 | 日韩精品黄色| 日韩免费视频在线观看| 91九色鹿精品国产综合久久香蕉| 欧美裸体网站| 亚洲精选一区| 日韩精品xxx| 中文字幕在线观看一区| www五月天com| 日韩av网站电影| 永久免费网站在线| 91精品国产综合久久香蕉最新版| 精品中文字幕一区二区三区av| 欧洲精品一区二区三区久久| 国产精品一区二区在线观看不卡 | 国产精品xxxxx| 欧美挤奶吃奶水xxxxx| 精品无码av无码免费专区| 国产一区二区三区在线观看精品 | 欧美午夜电影一区二区三区| 欧美自拍视频在线观看| 国产精品丝袜在线播放| 天天干天天色天天爽| 精品伊人久久久久7777人| 国产大屁股喷水视频在线观看| 在线亚洲欧美专区二区| 韩国三级在线观看久| 欧洲一区二区视频| 亚洲免费观看高清完整版在线观| 少妇高潮毛片色欲ava片| 成人在线综合网| 国产一级视频在线| 欧美变态tickling挠脚心| 美女尤物在线视频| 成人av片网址| 国内精品久久久久久久影视麻豆| avtt中文字幕| 亚洲国产日韩精品| 亚洲日本国产精品| 欧美一区二三区| 欧美精品第一区| 老司机午夜av| 国产精品国产自产拍在线| 国产精品久久无码一三区| 欧美精品在线播放| 97青娱国产盛宴精品视频| 日韩中文字幕在线免费| 99精品久久99久久久久| 亚洲不卡视频在线观看| 中文字幕欧美亚洲| 精品中文字幕一区二区三区四区 | 精品国产伦理网| 欧美调教sm| 视频二区一区| 国模少妇一区二区三区| 国产一级大片在线观看| 国产视频久久久久| 亚洲综合在线电影| 亚洲一卡二卡三卡| 国产精品羞羞答答xxdd| 久久久久久久久久免费视频| 亚洲欧美另类在线观看| 一区在线不卡| 妞干网在线播放| 久久伊人蜜桃av一区二区| 亚洲天堂网视频| 欧美精品videofree1080p| 天天躁日日躁成人字幕aⅴ| 男人搞女人网站| 亚洲精品国产一区二区精华液 | 在线观看国产成人| 欧美激情欧美狂野欧美精品| 一道本一区二区三区| 亚洲一二三不卡| 精品露脸国产偷人在视频| 在线毛片网站| 国产九色91| 麻豆精品一区二区综合av| 国产精品99无码一区二区| 在线激情影院一区| 97久久精品| 国产高清视频网站| 亚洲国产中文字幕| 免费高清在线观看| 精品国产福利| 国产在线精品一区二区不卡了 | 色婷婷粉嫩av|