【问题标题】:How does Chrome's garbage collector handle async functions that never return a value?Chrome 的垃圾收集器如何处理从不返回值的异步函数?
【发布时间】:2021-05-01 18:11:50
【问题描述】:

这会导致任何问题吗?我猜不会,只要我们不尝试 await 一个没有返回值的异步函数?

我一直在寻找有关这方面的信息,并且我确信它就在那里(甚至可能很明显),但我没有任何运气找到明确的答案。

【问题讨论】:

  • “从不”是什么意思?你的意思是他们没有return 任何价值吗?然后就像普通函数一样,返回值默认为undefined

标签: javascript google-chrome async-await chromium v8


【解决方案1】:

垃圾收集器与它无关。

在 JavaScript 中,每个函数都会返回一个值。当它没有明确的return 语句时,它会隐式返回undefined

当然,如果您等待永远不会发生的事件,您最终将永远等待。任何注册为在事件发生时运行的回调都将与您一起等待,即它们将永远留在内存中。

自己看看:

async function foo() { /* no explicit return */ }
let result = await foo();
console.log(result);  // undefined

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    相关资源
    最近更新 更多