【问题标题】:What is the best practice in production and development for .catch console error?.catch 控制台错误的生产和开发最佳实践是什么?
【发布时间】:2021-12-18 13:17:55
【问题描述】:

这是我的代码的 sn-p:

const data = await fetch(url, options)
    .then(res => res.json())
    .then(json => {
      const payID = json.data.id
      sessionStorage.setItem('payID', payID)
      return true
    })
    .catch(err => console.error(`error: ${err}`))

您的最佳做法是什么?您是否在开发和登台中保留 .catch,但将其从 PROD 中删除? Linter 不希望我的代码中出现控制台错误。

【问题讨论】:

  • 最后一行可以写成.catch(console.error)

标签: javascript eslint


【解决方案1】:
  1. 开发中:我们同时使用错误可视化工具,例如错误模式 + 控制台/错误记录器中间件。
  2. 在登台和生产中:我们只使用像模态这样的错误可视化工具,因为您永远不会期望团队的用户或黑盒测试人员(在测试登台部署的情况下)去控制台那么,什么是在生产中使用安慰?请注意,在生产中进行安慰甚至可能是让黑客生动地了解正在发生的事情的泄漏。所以,我建议永远不要在登台/生产中使用控制台,因为任何进入登台的东西都意味着一旦完成测试就会进入生产(因此生产和登台具有相同的规则)。

所以关于 Eslint 的事情,我建议你在 eslint 文件中将其关闭,并注意不要放置不必要的控制台的规则。对我来说,在为拉取请求提交代码之前我要做的是:SHIFT + CTRL+ F 然后键入“console.log”以了解哪些文件在我的 VS-CODE 中有 console.log 方法,然后我将它们删除。

【讨论】:

    【解决方案2】:

    我们不能让 linter 为我们决定一切,我建议留下 console.error,因为大多数情况下我们需要在控制台中查看这些错误并阅读它们,它们的存在是有原因的。

    对于写作风格,我们当然可以使用point free 风格

    .catch(console.error)
    

    对于 linter,它很可能有一条规则(在他们的文档中)来消除该错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      相关资源
      最近更新 更多