我想知道是否存在一个命名约定我应该遵循的函数返回一个承诺,明确说明如果您希望承诺有效,则应添加.then()
。
我修改了旧函数addFilterForLanguage(lang)
以返回下载该语言过滤器的承诺。在过去,它不是一个异步任务,过滤器将在它到达之前被调用。我想要一个更好的名称来清楚地表明.then()
是必要的。我们经常有新的实习生(其中一个编写了原始代码)可能不了解承诺,并且经常假设它会/将会工作。"
是否有此约定,或addFilterForLanguage_ButDontForgetToCall_Then_AndPassInAFunctionIfYouWantItToRunToMakeItSyncronous(lang)
我能做的最好?
(我认为addFilterForLanguage(lang).then(myFunction)
很清楚,但你永远不知道。)
答案 0 :(得分:3)
在节点样式的回调函数上使用Async
时,Bluebird Promise库会将Promise.promisifyAll
添加为函数名称的后缀。
例如,使用fs.exists
转换promisifyAll
会将其转换为fs.existsAsync
。
我们在Promise需要与Node风格的回调交互的任何代码中使用了该约定。
答案 1 :(得分:2)
据我所知,这可以作为团队内部的编码指南实现,也可以不实现。在过去,我曾在团队工作,我们决定为返回承诺的任何东西添加Async后缀,所以在你的情况下,addFilterForLanguageAsync。