【发布时间】:2014-01-05 19:30:51
【问题描述】:
是否可以在 javascript 中调用函数而不等待结果?我有很多递归调用,它们消耗大量内存,所以我有时会得到“超出最大调用堆栈大小”。
【问题讨论】:
-
您能否展示导致该问题的那段代码,以便我们对其进行优化?
-
你递归的太多了。而且您没有考虑正确的方向来解决问题。
-
这不是一块。我正在寻找替代方案,所以我不进行重构。
-
扩展@AndrewBarber 所说的,使其异步不会改变调用堆栈的深度。所以它不会解决根本问题。有一些技术可以手动优化尾调用。您可能想在“蹦床”上搜索 Javascript。
-
这里的重点是你需要重构和修复你的算法。 JS 是单线程的,所以你不能拿一块普通的 JS 突然让它异步。你可以探索 webWorkers,但这不会改变你的内存消耗——因为你需要重新考虑你的算法是如何工作的。
标签: javascript recursion function-call