2011-09-02 4 views
2

나는 그것이 가능한 방법 타 기능을 관찰 function를 작성 경우 알고 싶습니다. 더 정확하게는, obsever는 상기 observed 함수 실행 시간을 추적하고, 경우에 후자는 주어진 시간 값은 observer 기능 정지를 초과한다.자바 스크립트 경과 시간 기능 관찰자

그래서, 간단히 :

function observed() { // ... } 

/** 
* Run a function and stop if this exceeds a given time. 
* 
* @param {Function} observedFunc The function to run and observe. 
* @param {Number} maxTime The maximum elapsed time allowed. 
*/ 
function observer(observedFunc, maxTime) { 
    /* 
    * if (observedFunc exceed the time) 
    *  stop observedFunc; 
    *  return; 
    * else 
    *  return; (when the observed function return) 
    */ 
} 

IT는 observed 기능을 변경하지 않고,이 감당할 수 있습니까?

+4

외부에서 함수의 실행을 중지 할 수 없다고 생각합니다. 사용자가 obseruted() 함수에 시간 제한을 설정해야합니다. –

답변

1

지원하는 브라우저에서 Web Workers 만 있습니다. 웹 작업자와 함께 observed을 실행 한 경우 주 스크립트에서 terminate()을 호출 할 수 있습니다.

일반적으로 (적어도 역사적으로) 자바 스크립트는 single threaded이므로 observed이 실행되는 동안 observer은 중지 할 방법이 없습니다.