节点光纤会打破节点域吗?

我目前使用节点光纤来编写同步服务器端代码。 我主要通过try-catch块进行error handling,但总是有可能在外部库或asynchronous代码的其他小部分中发生错误。 我正在考虑使用新的域function来尝试将这些错误路由到正确的请求,我想知道是否有人尝试在同一个应用程序中使用光纤和域。

根据域在幕后的工作方式,我可以想象光纤可能会破坏一些假设,将asynchronous代码与正确的域关联起来。 具体来说,我担心域可能会做类似于下面的事情来跟踪上下文,这可能会破坏纤维,因为纤维破坏了一个函数将在任何其他代码运行之前运行完成的保证:

run_in_domain = function(to_run) { var old_domain = global_domain; global_domain = new_domain(); try { to_run(); } finally { global_domain = old_domain; } } 

有没有人成功或失败,试图让光纤和域一起玩?

我写了一篇关于节点域如何工作的文章。 节点域如何工作

基本上他们的工作原理类似于process.on('uncaughtException')

我可以看到,节点光纤的作者指出,你可以使用process.on('uncaughtException')来处理节点光纤的exception,所以不应该有问题。 请参阅处理光纤中未捕获的exception