我想通过jquery热键为多个函数设置一个热键。我需要检查一个函数是否完成,可能是这样的:
if("function A is completed")
{
"Ctrl+A is now set to function B"
}
else
{
"Ctrl+A is set to function A"
}
我怎么检查这个?或者更好的想法?
答案 0 :(得分:1)
Web浏览器上的JavaScript是单线程的(除非使用Web工作者,即使这些函数不能被中断),所以除了 中的几个错误问题使用Firefox,函数不能在中间被中断。因此,如果您的代码正在运行,则根据定义,其他功能不是。
(有关Firefox问题的详细信息,请参阅this answer by bobince了解一些非常有用的情况。)
答案 1 :(得分:1)
根据具体情况,您可以做一些事情。您可以在完成当前函数后调用该函数,也可以为同一事件设置布尔值。
function A(){
alert('run items in function A');
return fireNewFunctionWhenComplete()
}
或设置标志
/*global var*/
var functionBCompleted = false;
function B(){
alert('run items in function B');
return functionBCompleted = true;
}
function testFunctionComplete(){
if(functionBCompleted){
alert('function B Copmleted');
}
else{
alert('function B not run');
}
}
这是一个非常简单的例子和@ T.J。提到你不能打断正在运行的进程。但是,如果要在异步操作完成时运行某些内容,可能需要查看promises规范。