【发布时间】:2011-05-10 19:47:02
【问题描述】:
我需要让一段代码始终独立于其他代码运行。有没有办法在javascript中创建一个线程来运行这个函数?
--为什么 setTimeout 对我不起作用
我试过了,但它只运行一次。如果我递归调用该函数,它会在一段时间后抛出错误“递归过多”。我需要它每 100 英里运行一次(这是与嵌入式系统的通信)。
--如你所愿,这里有一些代码
function update(v2) {
// I removed the use of v2 here for simplicity
dump("update\n"); // this will just print the string
setTimeout(new function() { update(v2); }, 100); // this try doesn't work
}
update(this.v);
它抛出“太多递归”。
【问题讨论】:
-
我想看一些代码 :) 也许可以改进...
-
好的,1) dump() 做什么? 2)如果不使用,为什么要传递参数? 3) try/catch 试图捕捉什么? =) 4) 你为什么要创建一个函数的实例?如果您删除“新”构造函数?这段代码的目的是什么?
-
1) dump() 只打印字符串。 2)我将使用参数,为简单起见,我删除了使用。 3) 与 2 相同。 4) 这是我尝试使用示例代码,我不知道如何让它继续运行。
-
@fcalderan 回答。但是这个示例代码应该每 100 毫秒打印一次“更新”。这就是我现在想要做的。
-
使用简化版本时问题可能不可见......无论如何开始删除“新”构造函数,看看这是否更好。然后用另一种控件替换try catch。但是如果没有看到真正的代码,很难帮助你。