等待递归函数时获取未定义的结果
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了等待递归函数时获取未定义的结果相关的知识,希望对你有一定的参考价值。
这是我的情况:在我的函数中,我想等待另一个函数执行某些递归操作,最后返回结果。但是我只是得到了不确定的结果。
请参见此处找到fiddle中的代码。
我的代码:
let count = async() =>
let recursiveFunc = (index) =>
console.log(index);
if (index === 0)
return "Finish";
else
index--;
recursiveFunc(index);
return recursiveFunc(3);
;
count().then(result =>
console.log(result);
)
我希望获得“ 3 2 1 0完成”的日志,但得到“ 3 2 1 0未定义”。
如果发现我的错误,请给我一些指导。谢谢。
答案
return
通话之前您缺少recursiveFunc(index)
关键字:
let count = async ()=>
let recursiveFunc = (index) =>
console.log(index);
if(index === 0)
return "Finish";
else
index--;
return recursiveFunc(index); // <-- here, `return`
return recursiveFunc(3);
;
count().then(result =>
console.log(result);
)
以上是关于等待递归函数时获取未定义的结果的主要内容,如果未能解决你的问题,请参考以下文章