【问题标题】:how to interrupt timeout long running method in nodejs?如何中断nodejs中的超时长时间运行方法?
【发布时间】:2012-09-08 12:54:47
【问题描述】:

使用内置支持线程的语言,这似乎是一项相当容易的任务,但是,

有没有办法终止/超时一个长时间运行的方法/无限递归方法?

例如,如果我有一个将回调作为参数的 api,并在调用前后进行一些处理并返回结果。

function api(data,callback) {
  processedData = before(data);
  result = callback(processedData);
  processedResult = after(result);
  return processedResult;
}

如果臭名昭著的开发者使用以下回调调用此 api

function cpuFrenzy(data) {
  while(true);
} 

result = api( {} , cpuFrenzy);
render(result);

api 的结果用于渲染 HTML。

Node js 是单线程的会阻塞所有对服务器的请求!

那么如果超过预设时间,api有什么办法可以超时/终止回调方法的执行,以避免阻塞所有的网络请求?

如果没有,有没有其他方法可以实现这个api?

【问题讨论】:

    标签: javascript multithreading node.js asynchronous timeout


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 2012-06-05
      • 2015-12-30
      • 2019-07-31
      • 2017-03-22
      • 1970-01-01
      • 2022-07-29
      • 2019-06-16
      • 1970-01-01
      • 2013-10-01
      相关资源
      最近更新 更多