javascript中的线程(或类似的东西)

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)

它抛出"过多的递归".

use*_*716 2

去掉要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您的应用程序中的值是什么。