gpt4 book ai didi

javascript - Javascript 中的 Linting Promise

转载 作者:数据小太阳 更新时间:2023-10-29 05:33:09 27 4
gpt4 key购买 nike

我希望在我的团队的代码库中标准化 Q promises 的使用。是否有任何好的 jscs 扩展(或其他 linter)来帮助在 promise 方面加强风格?

我们希望我们的 promise 遵循这种形式:

promise()
.then()
.catch()
.done();

并且希望 linter 能够捕获我们代码中缺少 .catch() 的任何 .then()

也欢迎就 promises 提出其他文体技巧的建议。

最佳答案

@Jeff 这种方法看起来完全矫枉过正。这两个函数都不能跟在 any 后面。他们每个人都有不同的目的:

  • 当您想要处理已解析的值时使用then(mapSuccess, mapFail)并且您需要一个将使用回调返回的值解析的结果 promise
    从技术上讲,它是将值(value)映射到将由其他 promise 解决的其他值(value)。您可能会认为它与数组的 map 类似,您可以将输入数组映射到其他数组,这是某些转换函数的结果。
  • catch(mapFail) 纯粹是 then(null, mapFail) 的别名,所以当你想要 then 时使用它,但你无需传递 mapSuccess 回调。
  • done(onSuccess, onFail) 使用简单,当您只想处理已解析的值(无需映射到其他 promise )时。 done 还将确保所有最终错误自然暴露(thencatch 因为它们是映射器,将错误吞入 promise 结果中)。

我可以想象只有一个规则,可以为 linter 添加(并且假设您使用的库不记录吞噬的异常)。当它们的结果被忽略时,它会警告 then()catch() 用法(它们后面应该是 done(..)或传递给其他实体进行处理)。

关于javascript - Javascript 中的 Linting Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29784473/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com