给出以下代码
async function recurse() {
await someAsyncStuff();
return recurse();
}
await recurse(0);
recurse(i) 将解析为 recurse(i+1) 并且旧的 Promise 将被 GC'd 是有道理的,但我似乎无法找到任何文档来确认 Node 将如何解析下面的内容hood——相反,MDN 似乎暗示这不会发生,而是 promises 会相互叠加,创建一种包装 Promises 的套娃。
在本地运行这段代码似乎同意这一点,但结果是不确定的——程序的总堆大小确实随着时间的推移而增加,但速度太慢以至于其他任何事情都可能导致它。