【发布时间】:2020-06-25 05:36:19
【问题描述】:
递归函数运行时不能运行回调函数?
递归斐波那契函数和setInterval()的示例代码
'use strict';
function fibo(x) {
if (x === 0) {
console.info('fibo( ' + x + ' ) == 0');
return 0;
} else if (x === 1) {
console.info('fibo( ' + x + ' ) == 1');
return 1;
}
return fibo(x-2) + fibo(x-1);
};
fibo(10);
setInterval(() =>{console.info('hello')},10);
执行此代码,在 fibo(10) 完成工作后运行 setInterval。
如何在 fibo() 运行时显示 'hello' 日志? 递归函数运行时是否可以切入回调函数?
【问题讨论】:
-
setInterval和setTimeout调用在所有同步调用完成后运行。如果你运行很长的for或while循环,也会发生同样的情况
标签: javascript recursion callback stack