gpt4 book ai didi

javascript - JavaScript 中的递归和 setTimeout

转载 作者:行者123 更新时间:2023-11-30 18:51:48 25 4
gpt4 key购买 nike

我的 JavaScript 文件中有一个递归函数。它看起来像这样:

function process(node){
if(someCondition)
return someValue;
a = process(node.children);
b = doSomething(a);
return b;
}

问题是我想在此递归的每个步骤中将系统状态显示到 HTML 输出。每个步骤之间应该有一个延迟。 (假设我想向用户实时显示递归)。在任何其他语言中,我会在函数内部使用 delay() 调用,但是由于 JavaScript 只支持 setTimeout() 来做这样的事情,所以我迷路了,因为我不知道如何在这个特定的地方使用 setTimeout 调用案例。

通常在更简单的情况下我会使用这样的东西:

function process(node){
if(someCondition)
return someValue;
setTimeout("process(node.children)", delay);
}

;但是由于我的原始函数返回一个值,我不知道如何继续。

提前致谢。

最佳答案

我认为这不能用作纯递归算法。

您可以将 b 的当前值存储在全局变量中。

然后您可以使用 setInterval 以类似的方式处理该值,在每次迭代时更新 b 的值,并在满足条件时使用 clearTimeout 停止执行。

关于javascript - JavaScript 中的递归和 setTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3633576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com