我目前正在使用node-fibers来编写同步服务器端代码。我主要通过try-catch块进行错误处理,但在外部库或其他少量异步代码中总是存在错误发生的可能性。我正在考虑使用新的域功能来尝试将这些错误路由到正确的请求,我想知道是否有人尝试过在同一个应用程序中使用纤程和域。
根据域在幕后的工作方式,我可以想象到纤程可能会破坏一些用于将异步代码与正确的域相关联的假设。具体地说,我担心域可能会做类似以下的事情来跟踪上下文,这可能会与纤程中断,因为纤程破坏了函数将在任何其他代码运行之前运行到完成的保证:
run_in_domain = function(to_run) {
var old_domain = global_domain;
global_domain = new_domain();
try {
to_run();
} finally {
global_domain = old_domain;
}
}有没有人成功或失败地尝试让纤维和域一起发挥作用?
发布于 2013-11-02 04:33:21
我写了一篇关于节点域如何工作的文章。How Node Domains Work
基本上,它们的工作方式类似于process.on('uncaughtException')。
我可以看到node-fibers的作者指出,您可以使用process.on('uncaughtException')来处理node-fibers的异常,所以应该不会有问题。请参阅Handling Uncaught Exceptions in a Fiber
https://stackoverflow.com/questions/19732733
复制相似问题