javascript - 等待函数输出不超过一定时间的最佳方法是什么?

标签 javascript node.js timeout synchronous

我有两个功能。比如说,一个执行一些复杂的逻辑,另一个包装前者以提供计算结果,或者在 t 秒后如果没有输出,则提供错误消息。

所以如果我执行以下操作

var complex = function () {
    // do complex computation
};

var output = function (compute) {
    return compute();
};

output(complex);

然后它运行的时间太长,因为在复杂的情况下,进程会花费太多时间,因为它是同步执行的。如果花费的时间超过 t,我需要抛出一条错误消息。终止complex的执行不是必需的,但在不超过t的时间内从output返回任何值是要点。最好的方法是什么?

最佳答案

浏览器中的 JavaScript 可以采用两种方法来进行同步本地计算:

1) 将计算分解为较小的计算单元并检查单元之间的时间。这意味着必须调整算法。

2) 将计算推迟到 webworker (在单独的线程中运行)和 terminate如果需要太多时间就可以了。

关于javascript - 等待函数输出不超过一定时间的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30507536/

相关文章:

node.js - 使用 mongoose 访问多个 mongo 数据库

HTTP 保活超时

java - NettyIO 捕获连接超时

javascript - jQuery 以编程方式取消选中并重新选择复选框

javascript - 有没有办法阻止 Firebug 在特定站点上工作?

javascript - 使用 Firefox native 消息进行异步 webRequest.onBeforeRequest URL 检查

erlang - 为什么 Pry shell 在 Phoenix/cowboy 中超时如此之快? (shell 进程退出的原因是 : shutdown)

javascript - 添加和删​​除类时重复 jquery

javascript - Cosmos DB Mongo API 如何管理 "Request Rate is Large"条件

node.js - 在 Express 中将变量传递到路由模板的最简单方法?