一尘不染

是否有与“返回等待”有关的性能问题?

javascript

我看到有一条禁止的附庸制度no-return-await``return await

在规则的描述中,它声明了一个return awaitadd "extra time before the overarching Promise resolves or rejects"

但是,当我查看[MDN async函数docs时,“简单示例”显示了一个示例,其中return await没有任何说明这可能是性能问题的原因。

return await如eslint文档所建议的那样,是否存在实际的性能问题?

如果是这样,怎么办?


阅读 238

收藏
2020-04-25

共1个答案

一尘不染

不,没有任何性能 问题 。这只是不必要的额外操作。执行可能需要更长的时间,但几乎不会引起注意。它类似于return x+0而不是returnx整数x。或更确切地说,完全等同于[毫无意义.then(x =>x)]。

它并没有真正的危害,但是我认为它是不好的风格,这表明作者没有完全理解promise和async/ await

但是,在一种情况下,它会产生重要的变化:

try {
    …
    return await …;
} …

await不扔拒绝,并且在任何情况下,等待着之前的承诺解决catchfinally正在执行的处理程序。一个平原return会忽略这一点。

2020-04-25