Tom*_*ito 5 javascript multithreading
我需要让一段代码始终独立于其他代码运行.有没有办法在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);
Run Code Online (Sandbox Code Playgroud)
它抛出"过多的递归".
去掉要new传递给的函数的关键字setTimeout(),它应该可以工作。
function update(v2) {
try {
dump("update\n");
} catch(err) {
dump("Fail to update " + err + "\n");
}
setTimeout(function() { update(v2); }, 100);
}
update(this.v);
Run Code Online (Sandbox Code Playgroud)
或者只是使用setInterval().
function update(v2) {
try {
dump("update\n");
} catch(err) {
dump("Fail to update " + err + "\n");
}
}
var this_v = this.v;
setInterval(function() {update(this_v);}, 100);
Run Code Online (Sandbox Code Playgroud)
编辑:this.v在变量中引用,因为我不知道this您的应用程序中的值是什么。
| 归档时间: |
|
| 查看次数: |
389 次 |
| 最近记录: |