我希望在我的团队代码库中标准化Q承诺的使用。当涉及到承诺时,是否有任何好的jscs扩展(或其他指针)来帮助执行样式?
我们希望我们的承诺遵循这一形式:
promise()
.then()
.catch()
.done();并希望链接器捕获代码中缺少一个.then()的任何.catch()。
当涉及到承诺时,对其他文体技巧的建议也是受欢迎的。
发布于 2015-04-22 08:18:00
@Jeff,这种做法看上去完全过火了。这两种功能都不能与任何函数一起使用。每一种方法都有不同的目的:
then(mapSuccess, mapFail)时使用,并且需要使用回调返回的值解决结果承诺。
从技术上讲,这是一种将价值映射到其他价值的映射,它将通过其他承诺来解决。您可能会类似地认为它是数组的map,您用它将输入数组映射到其他数组,这是某些转换函数的结果。catch(mapFail)纯粹是then(null, mapFail)的别名,所以当您想要then时使用它,但是不需要传递mapSuccess回调。done(onSuccess, onFail)。done还将确保所有最终的错误都是自然暴露的(then和catch作为映射者,将错误吞并到承诺的结果中)。我可以想象只有一个规则,可以为linter添加(它假设您使用的是库,它不记录吞没的异常)。当then()或catch()的结果被忽略时,它会警告它们的使用(它们后面应该是done(..),或者传递给其他实体进行处理)。
https://stackoverflow.com/questions/29784473
复制相似问题