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/

相关文章:

javascript - 为实时流表添加过滤、搜索和分页

javascript - 加载动态内容后 jQuery 函数不起作用

node.js - 无法识别语音错误 : Error occurred while processing 'audio.wav' . 文件中的 WAV header 无效,未找到 RIFF

ios - 请求超时,代码=-1001_kCFStreamErrorCodeKey=-2102

javascript - Grunt - html 压缩器任务失败

javascript - jQuery 表单提交仅在 IE10+ 上不响应

javascript - TypeError : callback. 应用不是函数

node.js - Node - 将表与 Sequelize 关联起来

java - 手动超时java中的httpurlconnection

kubernetes - Docker nuget 连接超时