在 promise 语法之前无效
Posted
技术标签:
【中文标题】在 promise 语法之前无效【英文标题】:void before promise syntax 【发布时间】:2019-08-28 17:51:10 【问题描述】:将void
放在promise 之前的实际影响是什么?
async function doAsyncStuff()
...
function nonAsyncFunction()
void doAsyncStuff();
我找不到任何官方文档,但它必须在解决no-floating-promises
TSLint 错误时做一些事情。
【问题讨论】:
void 运算符的文档怎么样? developer.mozilla.org/en-US/docs/Web/javascript/Reference/… 是的,这正是我想要的。试图在 Promise 文档中找到它,显然我没有找对地方。 是的,void
自从 Brendan Eich 穿短裤以来一直是 javascript 操作员:p
另见:Can I fire and forget a promise in nodejs (ES7)?
我个人更喜欢/*await*/ fireAndForget();
,因为对 JS 不太熟悉的人也能理解,但这并不能阻止 linter 抱怨
【参考方案1】:
void
是一个运算符,它接受右侧的值并计算为 undefined
。
它解决了 no-floating-promises,因为它对 Promise 做了一些事情(或者更确切地说,什么都不做)。
【讨论】:
哦,哇,TIL 的人们使用void
来压制规则。归档github.com/palantir/tslint/issues/4653。感谢@Quentin!
^ 或者,如何在一个简单的步骤中使答案不正确。
看起来这种行为可以通过一些配置恢复,至少使用 typescript-eslint。见typescript-eslint.io/rules/no-floating-promises以上是关于在 promise 语法之前无效的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Promise填充层次结构,其中每个级别都需要满足之前的级别?