是否可以同时调用多个函数?
例如:
var executed = false;
// loop 1
func();
// loop 2
func();
function func(){
if (executed) return;
executed = true;
alert(1);
}
func()能够同时执行2次吗?
是否可以同时调用多个函数?
例如:
var executed = false;
// loop 1
func();
// loop 2
func();
function func(){
if (executed) return;
executed = true;
alert(1);
}
func()能够同时执行2次吗?
var executed = false;
var theother=new Promise( r=>setTimeout(r,0));
func();
// loop 2
func();
async function func(){
if (executed) return;
await theother;
executed = true;
alert(1);
}
var executed = false;
// loop 1
func();
// loop 2
func();
function func(){
if (executed) return;
setTimeout(function(){
executed = true;
alert(1);
},0);
}
JavaScript没有原生的支持同时运行多个函数。历史上,它依赖于用本机代码处理耗时任务(例如等待HTTP请求或进行CPU密集型操作),该本机代码向JS提供API(并且该API接受回调或最近返回Promise)。
这开始发生改变。
大多数Web浏览器支持Web Workers,Node.js已经引入了Worker Threads的实验性支持。
它们允许将JavaScript代码分配到独立进程中,该进程独立于主事件循环运行,并使用消息与主进程通信。
<!DOCTYPE html>
<html>
<head>
<title>sample test</title>
<script type="text/javascript">
print=function(msg) {
var ifunction=function(){
console.log(msg);
}
return ifunction;
};
button1=function(name,count){
for (var i =0 ;i <count; i++) {
setTimeout(print(name+":"+i+"seconds over after button1 click"),i*500);
}
};
</script>
</head>
<body>
<form>
<input type="" name="" />
<input type="button" value="button1" onclick="button1('button1',5)" />
<input type="button" value="button2" onclick="button1('button2',5)" />
</form>
</body>
</html>
func(); func();
时,它不会执行第二个调用,直到第一个调用返回。 - Barmar