Недавно я обнаружил новый оператор безопасного присваивания (?.=), представленный в 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