当前位置: 首页 > 面试题库 >

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

商昂然
2023-03-14
问题内容

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

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

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

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

如果是这样,怎么办?


问题答案:

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

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

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

try {
    …
    return await …;
} …

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



 类似资料:
  • 我看到有一条eslint规则,,用于禁止。 在规则的描述中,它声明一个添加。 但是,当我查看MDN函数文档时,“简单示例”显示了一个包含的示例,但没有说明这可能是性能问题的原因。 是否如eslint文档所建议的那样是一个实际的性能问题? 如果是,怎么做?

  • 问题内容: 不幸的是,HTML中没有CDATA。 遗憾的是,因为它非常适合添加包含XML的注释,因此您不必转义<和>,例如: 但是,可以识别CDATA部分,然后将其转换为HTML。例如: 或者它可以使用比CDATA更简单的语法。因为是可扩展的,所以可能有人添加了此功能。也许已经将它埋在里面的某处…有人知道吗? 问题答案: 您可以使用JavaDoc的标签:

  • 问题内容: 我注意到使用pandas的迭代器时性能非常差。 这是别人所经历的吗?它特定于迭代吗?对于一定大小的数据(我正在处理2-3百万行),应该避免使用此功能吗? 在GitHub上进行的讨论使我相信,这是在数据帧中混合时引起的,但是下面的简单示例显示,即使使用一个也存在该问题。这在我的机器上需要36秒: 为什么矢量化运算之类的应用这么快?我想象那里也必须进行逐行迭代。 我无法弄清楚在我的情况下如

  • 问题内容: 我想从数据库中获取一个对象(如果已存在)(基于提供的参数),或者如果不存在则创建它。 Django的(或)做到了。SQLAlchemy中是否有等效的快捷方式? 我目前正在像这样明确地写出来: 问题答案: 基本上就是这样做的方法,没有快捷方式可供使用的AFAIK。 你可以将其概括为:

  • 问题内容: 有人知道类似于JavaRobot的Python类吗? 具体来说,我想在Ubuntu中执行屏幕抓取,并最终跟踪鼠标单击和键盘按键(尽管这是一个稍微不同的问题)。 问题答案: 如果您有GTK,则可以使用gtk.gdk.Display类来完成大部分工作。它控制键盘/鼠标指针获取一组对象。

  • 问题内容: 当搜索复杂的JSON数组和哈希中的项目时,例如: 我可以使用某种查询语言来查找商品吗? 问题答案: 是的,它称为JSONPath。源码现在在GitHub上。 它还集成到DOJO中。