【问题标题】:Javascript elapsed time function observerJavascript经过时间函数观察者
【发布时间】:2011-09-02 16:54:37
【问题描述】:

我想知道 IFHOW 是否可以编写一个观察其他函数的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 功能的情况下负担得起?

【问题讨论】:

  • 我认为不可能在外部停止函数的执行——你必须在你的 observed() 函数中构建超时。

标签: javascript function time


【解决方案1】:

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

通常(至少从历史上看)Javascript 是 single threaded,因此当 observed 正在运行时,observer 无法停止它。

【讨论】:

    猜你喜欢
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 2016-02-20
    • 2023-04-10
    • 1970-01-01
    相关资源
    最近更新 更多