实现回调(几乎)只有一个结束就可以了(所谓的)“递归”语法以前的回调后第二次的重复执行的标准方式:JS setTimeout()重复循环不比循环语法更好,以防止堆栈耗尽?
function callback_recurse(){
// do something, if <condtion> break
setTimeout(callback_recurse, 1000);
}
setTimeout(callback_recurse, 1000); // first call
为什么不使用循环语法呢? :
function callback(){
// do something
}
function loopcallbacks(){
while (<condition>)
setTimeout(callback, 1000);
}
毕竟,您将永远不会使用迭代循环语法用完堆栈空间,就像您将使用递归语法一样。
(声明:我回答我的问题)
我不知道我理解为什么因为它是一个无限循环的第二个例子甚至可以考虑的选择。 – zzzzBov
第一个片段不是递归的。这是伪递归,我不希望它增长调用堆栈。同样在第二个片段中,您将同步地将无数回调插入到事件循环后1000毫秒执行。 – Redu