최근 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는 대략 두 배의 코드를 사용합니다.
그럼 어떻게 생각하세요? Safe Assignment Operator는 시간을 절약해 주나요, 아니면 불필요한 복잡성을 추가합니까?
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3