Javascript经过时间函数观察器

时间:2011-09-02 16:54:38

标签: javascript function time

我想知道 IF HOW ,可以编写一个观察其他功能的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)
    */
}

是否可以在不更改observed功能的情况下承担此费用?

1 个答案:

答案 0 :(得分:1)

仅在支持它的浏览器中使用Web Workers。如果您使用Web Worker运行observed,则主脚本可以调用该工作线程上的terminate()

通常(至少在历史上)Javascript为single threaded,因此observed正在运行时,observer无法阻止它。