首页 > web前端 > js教程 > 正文

尝试...捕获 V/s 安全分配 (?=):现代发展的福音还是诅咒?

WBOY
发布: 2024-08-26 21:33:32
原创
818 人浏览过

Try...Catch V/s Safe Assignment (?=): A Boon or a Curse for Modern Development?

最近,我发现了 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 大约是它的两倍。

那么,你觉得怎么样?安全赋值运算符是否可以节省时间,或者是否会增加不必要的复杂性?

以上是尝试...捕获 V/s 安全分配 (?=):现代发展的福音还是诅咒?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!