最近,我發現了 JavaScript 中引入的新安全賦值運算子 (?.=),我對它的簡單性著迷。 ?
安全賦值運算子 (SAO) 是傳統 try...catch 區塊的簡寫替代方案。它允許您內聯捕獲錯誤,而無需為每個操作編寫明確的錯誤處理程式碼。這是一個例子:
const [error, response] ?= await fetch("https://api.example.com/data");
就是這樣!就是這麼簡單。如果取得請求拋出錯誤,它會自動儲存在錯誤常數中;否則,回應將保留結果。很酷吧?
但等等…還有更多。
使用SAO時,您仍需要進一步處理錯誤,如下所示:
async function getData() { const [requestError, response] ?= await fetch("https://api.example.com/data"); if (requestError) { handleRequestError(requestError); return; } const [parseError, json] ?= await response.json(); if (parseError) { handleParseError(parseError); return; } const [validationError, data] ?= validation.parse(json); if (validationError) { handleValidationError(validationError); return; } return data; }
雖然 SAO 簡化了錯誤處理,但它可能會導致更冗長的程式碼。與傳統的 try...catch 區塊進行比較:
async function getData() { try { const response = await fetch("https://api.example.com/data"); const json = await response.json(); const data = validation.parse(json); return data; } catch (error) { handleError(error); return; } }
在這種情況下,try...catch只需要9行程式碼,而SAO大約是它的兩倍。
那麼,你覺得呢?安全賦值運算子是否可以節省時間,或者是否會增加不必要的複雜度?
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3