首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linting在Javascript中的承诺

Linting在Javascript中的承诺
EN

Stack Overflow用户
提问于 2015-04-21 22:42:08
回答 1查看 958关注 0票数 7

我希望在我的团队代码库中标准化Q承诺的使用。当涉及到承诺时,是否有任何好的jscs扩展(或其他指针)来帮助执行样式?

我们希望我们的承诺遵循这一形式:

代码语言:javascript
复制
promise()
  .then()
  .catch()
  .done();

并希望链接器捕获代码中缺少一个.then()的任何.catch()

当涉及到承诺时,对其他文体技巧的建议也是受欢迎的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-22 08:18:00

@Jeff,这种做法看上去完全过火了。这两种功能都不能与任何函数一起使用。每一种方法都有不同的目的:

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29784473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档