清除函数名称,表示它将返回Promise(JavaScript)

时间:2015-08-04 18:24:02

标签: javascript promise code-readability

我想知道是否存在一个命名约定我应该遵循的函数返回一个承诺,明确说明如果您希望承诺有效,则应添加.then()

我修改了旧函数addFilterForLanguage(lang)以返回下载该语言过滤器的承诺。在过去,它不是一个异步任务,过滤器将在它到达之前被调用。我想要一个更好的名称来清楚地表明.then()是必要的。我们经常有新的实习生(其中一个编写了原始代码)可能不了解承诺,并且经常假设它会/将会工作。"

是否有此约定,或addFilterForLanguage_ButDontForgetToCall_Then_AndPassInAFunctionIfYouWantItToRunToMakeItSyncronous(lang)我能做的最好?

(我认为addFilterForLanguage(lang).then(myFunction)很清楚,但你永远不知道。)

2 个答案:

答案 0 :(得分:3)

在节点样式的回调函数上使用Async时,Bluebird Promise库会将Promise.promisifyAll添加为函数名称的后缀。

例如,使用fs.exists转换promisifyAll会将其转换为fs.existsAsync

我们在Promise需要与Node风格的回调交互的任何代码中使用了该约定。

答案 1 :(得分:2)

据我所知,这可以作为团队内部的编码指南实现,也可以不实现。在过去,我曾在团队工作,我们决定为返回承诺的任何东西添加Async后缀,所以在你的情况下,addFilterForLanguageAsync。