麻烦退出节点域asynchronous

是否有可能asynchronousexit域名? 我的领域的“堆栈”思维模型显然是不够的,因为我预计这个模型会成功:

 var Domain = require('domain'); var assert = require('assert'); var outerDomain = Domain.create(); outerDomain.name = 'outer'; outerDomain.run(function() { var innerDomain = Domain.create(); innerDomain.name = 'inner'; innerDomain.enter(); setImmediate(function() { assert.strictEqual(process.domain.name, 'inner'); process.domain.exit(); // This assertion is failing because process.domain is undefined! assert.strictEqual(process.domain.name, 'outer'); }); }); 

第二个断言失败,因为没有活动域,而我期望“外部”域是活跃的。

我会很感激为什么这个失败的理解。

好吧,我想我已经开始了我的领域工作的思维模式:

当我调用setImmediate ,匿名函数只绑定到活动域,而不知道整个域“堆栈”。

所以一旦你跨越一个asynchronous的差距,域“堆栈”就会丢失,只剩下活动域。