gpt4 book ai didi

javascript - 递归函数只有运行一次才能解析

转载 作者:行者123 更新时间:2023-12-02 23:59:21 26 4
gpt4 key购买 nike

我有一个调用自身的递归函数。因为它是在一个 promise 中,当我再次调用它时, promise 就会链式,即使我返回它,我似乎也无法摆脱它。这是我的功能...

let depth = 0;
const maxDepth = 1;

main();

function main()
{
reccursive.then(
function(response)
{
console.log('all finished!');
});
}

function reccursive()
{
return new Promise((resolve, reject)=>
{
console.log('in recursive function');

if (depth === maxDepth)
{
console.log('hit max depth');
return resolve();
}

console.log('not max depth, increasing');
depth++;

return reccursive();
});
}

如果最大深度为0,它将运行一次,然后就可以正常解析。

最佳答案

问题是,你需要创建多个 Promise 吗?如果没有,则创建一个 Promise 并具有一个类似于递归函数的内部函数。

function recursive(depth = 0, maxDepth = 5)
{

console.log('in recursive function');
function inner(resolve){
if (depth === maxDepth){
console.log('hit max depth');
resolve(depth);
return;
}

console.log('not max depth, increasing');
depth++;
inner(resolve);
}

return new Promise((resolve, reject)=>{
inner(resolve);
});
}

recursive().then(depth=>console.log(depth))

关于javascript - 递归函数只有运行一次才能解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55244564/

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