清除函数名,表明它将返回一个Promise (JavaScript)



我想知道对于返回承诺的函数是否有一个我应该遵循的命名约定,该承诺清楚地解释了如果您希望有承诺工作,应该添加.then()

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

有这样的惯例吗,还是我能做到的最好的addFilterForLanguage_ButDontForgetToCall_Then_AndPassInAFunctionIfYouWantItToRunToMakeItSyncronous(lang) ?

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

当你在node风格的回调函数上使用Promise.promisifyAll时,Bluebird Promise库将Async作为函数名的后缀。

例如,用promisifyAll转换fs.exists将会变成fs.existsAsync

我们已经在任何需要与node风格的回调进行交互的代码中使用了这个约定。

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

最新更新