js - 检查功能是否完成

时间:2014-03-11 11:09:48

标签: javascript function

我想通过jquery热键为多个函数设置一个热键。我需要检查一个函数是否完成,可能是这样的:

if("function A is completed")
{
    "Ctrl+A is now set to function B"
}
else
{
    "Ctrl+A is set to function A"
}

我怎么检查这个?或者更好的想法?

2 个答案:

答案 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规范。