使用具有内置线程支持的语言这似乎是一项相当容易的任务,但是,
有没有办法终止/超时一个长时间运行的方法/无限递归方法?
例如,如果我有一个将回调作为参数的 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 吗?