精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

精品小视频在线| 久久久久久黄色| 欧美日韩xxx| 日本人添下边视频免费| 美女的胸无遮挡在线观看| 91麻豆国产福利精品| 国产精品视频男人的天堂| 久久97人妻无码一区二区三区| 日韩精品免费一区二区三区竹菊| 在线视频你懂得一区| 日韩最新中文字幕| 你懂的视频在线播放| 久久99久久久久久久久久久| 久久久在线免费观看| 亚洲精品国产精品国自| 高清一区二区三区| 日本不卡免费在线视频| 日本精品视频| 91麻豆精品秘密| 国产精品黄色av| 国产午夜精品无码一区二区| 欧美三级美国一级| 91精品国产综合久久香蕉麻豆| 免费看国产一级片| 国产福利视频在线| 国产蜜臀av在线一区二区三区| 国产精品.com| 亚洲综合精品在线| 久久精品主播| 国产91精品久久久久久| 国产又黄又爽又无遮挡| 精品盗摄女厕tp美女嘘嘘| 亚洲大胆人体视频| 成人三级做爰av| 韩国精品视频在线观看| 欧美日韩中文在线观看| 日本天堂免费a| 99se视频在线观看| 久久网站最新地址| 国产精品xxxx| 精品女同一区二区三区| 蜜桃视频一区二区三区| 欧美中文在线免费| 日韩xxx高潮hd| 欧美精品一区二区蜜桃| 日韩中文字幕视频网| 欧美日韩一二区| 免费激情视频在线观看| 亚洲色图官网| 精品国产电影一区| 精品国产一区三区| 91福利在线尤物| 亚洲国产综合91精品麻豆| 国产大尺度在线观看| 在线视频三区| 国产精品欧美综合在线| 色一情一乱一伦一区二区三区丨| 青青国产在线| 久久久综合视频| 美乳视频一区二区| 国产中文在线视频| 久久久久久久久久久久久久久99 | 日韩熟女一区二区| 久久精品日韩欧美| 日韩av成人在线| 国产91精品看黄网站在线观看| 国产亚洲精品v| 欧美一区二区三区免费观看| 亚洲免费黄色网址| 久久精品官网| 国产精品视频在线观看| 亚洲天堂aaa| 国模无码大尺度一区二区三区| 成人h视频在线观看播放| 91丨porny丨在线中文| 国内成人免费视频| 99视频国产精品免费观看| www.久久精品.com| 成人动漫一区二区在线| 久久久久久精| 在线国产91| 国产ts人妖调教重口男| 亚洲天堂一区在线观看| 精品国产乱码久久久久久果冻传媒| 亚洲欧美第一页| 亚洲国产欧美久久| 精品免费国产一区二区三区四区| 国产xxxxx视频| 免费成人高清在线视频| 久草在线在线精品观看| 中文久久精品| 综合激情国产一区| 亚洲不卡在线播放| 欧美日韩日本国产亚洲在线 | 欧美日韩国产欧美日美国产精品| 欧美视频一区二区三区| 99在线|亚洲一区二区| 中文字幕av一区二区三区| 亚洲欧美综合一区| 羞羞电影在线观看www| 亚洲第一成人av| 毛片av在线| 欧美激情在线看| 国产高清精品软男同| 久色国产在线| 色一情一乱一乱一91av| 久久久久久久久久一区二区| 老汉色老汉首页av亚洲| 影音先锋日韩精品| 黄色在线观看视频网站| 成人黄色在线看| 午夜精品一区二区三区在线观看 | 中文字幕不卡av| 欧美日韩在线视频免费播放| 日韩人妻无码精品综合区| 国产人与禽zoz0性伦| 国产亚洲欧美日韩在线观看一区二区 | 伊人青青综合网站| 欧美成人aaa片一区国产精品| 三级一区在线视频先锋 | av蜜臀在线| 欧亚洲嫩模精品一区三区| 日本在线不卡一区二区| 91欧美在线| 欧美综合国产精品久久丁香| 国产成人免费看一级大黄| 亚洲国产精品成人综合色在线婷婷| 久久精品xxx| 超碰国产精品一区二页| 在线电影中文日韩| 久久99精品波多结衣一区| 国产91精品精华液一区二区三区 | 波多野结衣在线网站| 天天色 色综合| 久久久久久久久久影视| 无码一区二区三区视频| 国产精品老牛影院在线观看| 深夜福利视频一区| 五月天亚洲婷婷| 久久性爱视频网站| 国产一区二区中文| 亚洲精品免费av| 日本中文字幕电影在线免费观看| 日本高清视频一区二区| 亚洲午夜福利在线观看| 亚洲一区二区成人| 激情小说网站亚洲综合网| 538视频在线| 欧美成人精精品一区二区频| 波多野结衣亚洲一区二区| 久久99日本精品| 伊人久久青草| 99re8精品视频在线观看| 久久激情五月丁香伊人| 亚洲一卡二卡在线观看| 国产精品国产a| 三年中文在线观看免费大全中国| 日韩综合精品| 成人有码在线播放| 18av在线播放| 日韩一区二区三区免费看| 国产波霸爆乳一区二区| 国产盗摄一区二区三区| 一卡二卡三卡视频| 妖精视频一区二区三区| 2021久久精品国产99国产精品| 亚洲av毛片成人精品| 欧美午夜激情视频| 国产午夜福利一区| 精品一区二区三区在线视频| 久久久久福利视频| 久久a爱视频| 国产91精品网站| 麻豆影院在线观看| 欧美色网一区二区| 动漫性做爰视频| 成人av在线资源| 日本中文字幕片| 色婷婷综合网| 翡翠波斯猫1977年美国| 在线观看爽视频| 国产一区二区三区中文| 一区二区三区韩国| 视频在线这里都是精品| 337p日本欧洲亚洲大胆色噜噜| 午夜精品久久久久久久久久久久久蜜桃 | 亚洲一区二区三区精品在线| 国产精品无码毛片| 美女一区二区视频| 香蕉视频免费版| 国产劲爆久久| 国产精品视频大全| www.综合| 夜夜嗨av色综合久久久综合网| 国产男男gay体育生白袜| 偷拍亚洲欧洲综合| 免费黄色在线网址| 成人av资源在线观看| 丰满少妇在线观看| 亚洲午夜av| 日本一区二区三区www| 日韩精品三级| 国产精品高清在线观看| 色呦呦在线看| 一区二区三区黄色| 天堂网av2014| 二区三区不卡| 国产精久久久| 久久韩国免费视频| 日韩av高清在线| 欧美日韩免费高清一区色橹橹 | 狠狠躁夜夜躁久久躁别揉| 黄色国产在线播放| 成人aa视频在线观看| 福利视频999| 美日韩精品视频| 日韩一级免费看| 日韩精品永久网址| 久久婷婷开心| 97品白浆高清久久久久久| 国产精品久久久久av| ririsao久久精品一区| 色狠狠av一区二区三区香蕉蜜桃| 午夜视频1000| 精品成a人在线观看| 国产伦理一区二区| 欧美日韩视频不卡| 六月丁香激情综合| 亚洲一区二区精品3399| 视频这里只有精品| 国产精品萝li| 波多野在线播放| 99精品1区2区| 日韩综合第一页| 国产福利一区在线观看| 尤物网站在线看| 美国十次了思思久久精品导航| 成人在线观看黄| 香蕉亚洲视频| 久色视频在线播放| 亚洲私人影院| 欧美一区二区视频在线播放| 97精品视频在线看| 亚洲韩国在线| 成人在线亚洲| 亚洲欧美成人一区| 欧美一区二区三| 水蜜桃一区二区| 精品国产一区一区二区三亚瑟| 极品尤物一区二区三区| 大型av综合网站| 黑人中文字幕一区二区三区| 国产精品xxx在线观看| 国产精品一区二区不卡视频| 超碰在线亚洲| 国模一区二区三区私拍视频| 国内露脸中年夫妇交换精品| 国产一级精品aaaaa看| av成人男女| 国产精品裸体一区二区三区| 国产精品中文字幕制服诱惑| 国产综合 伊人色| 五月综合久久| 欧美在线3区| 不卡视频在线| 久久国产精品免费观看| 一区二区中文| 久久国产精品网| 久久黄色影院| 色戒在线免费观看| 国产一区二区福利视频| 国产精品嫩草69影院| 99视频在线精品| 人妻少妇无码精品视频区| 国产精品人妖ts系列视频| 久久久久久视频| 香蕉乱码成人久久天堂爱免费| 亚洲欧美自拍视频| 欧美日韩国产一区二区三区地区| 午夜精品久久久久久久爽| 亚洲精品久久久久| 成人不用播放器| 精品国内自产拍在线观看| 韩国成人免费视频| 欧美在线性视频| 一级欧美视频| 激情一区二区三区| 日韩精品四区| 成人网站免费观看入口| 日本欧美大码aⅴ在线播放| 欧美国产日韩在线视频| 91女神在线视频| 91免费在线看片| 亚洲成人精品一区| 中文字幕理论片| 亚洲国产古装精品网站| 91亚洲精选| 韩日欧美一区二区| 亚洲91在线| 久久人人97超碰人人澡爱香蕉| 999视频精品| 国产a级一级片| 国产乱码精品一品二品| 在线不卡av电影| 亚洲专区一二三| 自拍偷拍精品视频| 日韩成人在线网站| 九九热最新地址| 日韩在线卡一卡二| 亚洲色图欧美自拍| 久久久久99精品国产片| 久草视频在线资源| 欧美视频日韩视频| 香港一级纯黄大片| 欧美成年人视频| 亚洲不卡系列| 久久96国产精品久久99软件| 亚洲欧美网站在线观看| 免费看a级黄色片| www.一区二区| 久久久国产成人| 欧美高清精品3d| 成a人片在线观看www视频| 91国内在线视频| 婷婷综合国产| 国产美女视频免费| 免费av网站大全久久| 色欲av无码一区二区三区| 亚洲综合成人在线视频| 一级淫片免费看| 国产一区二区免费| 欧美黄色网页| 久久久久成人精品免费播放动漫| 尤物在线精品| 精品久久久久久无码人妻| 亚洲伦理在线精品| 国产乱码一区二区| 中文字幕日本欧美| 成人午夜在线| 天堂va久久久噜噜噜久久va| 久久久久久网| wwwwxxxx国产| 日韩欧美在线视频日韩欧美在线视频| 日本wwwxxxx| 国产最新精品视频| 欧美激情极品| 人人妻人人添人人爽欧美一区| 99在线精品一区二区三区| 欧美福利视频一区二区| 亚洲高清不卡av| 九色porny自拍视频在线观看 | 亚洲乱码一区二区三区在线观看| 最近中文字幕免费在线观看| 这里只有精品丝袜| 久久亚洲人体| 天天做天天爱天天高潮| 国产麻豆精品一区二区| 免费在线观看黄视频| 欧美成人国产一区二区| √8天堂资源地址中文在线| 国产精品国产三级国产专区53 | 亚洲欧洲日韩一区二区三区| 一级全黄少妇性色生活片| 久久久av一区| 亚洲精品一区二区三区中文字幕 | av电影在线免费| 精品一区二区不卡| 日韩精品电影在线观看| 殴美一级黄色片| 91精品国产91热久久久做人人| 91cn在线观看| 国产一区二区不卡视频| 久久精品卡一| 欧美性猛交xxxx乱大交少妇| 3d动漫精品啪啪| av电影院在线看| 欧美精品一区二区三区在线四季| 日韩1区2区日韩1区2区| av黄色免费在线观看| 日韩免费电影一区| 午夜影院在线观看国产主播| 亚洲精品国产精品久久| 国产麻豆精品视频| 免费看日批视频| 久久精品91久久久久久再现| 国产无遮挡裸体免费久久| 激情网站五月天| 亚洲免费av网站| 视频国产在线观看| 91精品在线观| 一本色道久久综合一区| 久久久久久久久福利| 精品少妇一区二区三区在线播放| videos性欧美另类高清| 亚洲精品二区| 91视视频在线观看入口直接观看www | 久久无码专区国产精品s| 日本韩国欧美在线| 成年网站在线视频网站| 色女人综合av|