如何在nodejs中断超时长时间运行的方法?

时间:2012-09-15 18:46:27

标签: javascript multithreading node.js asynchronous timeout

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

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

例如,如果我有一个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。

单线程节点js将阻止对服务器的所有请求!

为了避免阻止所有Web请求,api有没有办法超时/终止回调方法执行超过一些预设时间,以避免阻止所有Web请求?

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

1 个答案:

答案 0 :(得分:3)