使用同步的错误,你可以窝误差范围是这样的:域可以嵌套在node.js中吗?
try {
try {
throw Error('e')
} catch(e) {
if(e.message !== 'f')
throw e
}
} catch(e) {
handleError(e)
}
这是我怎么会想到它的工作,但它不会(似乎是一个域名错误处理程序中引发错误到顶部,跳过之间的任何域):
var domain = require('domain');
var dA = domain.create();
dA.on('error', function(err) {
console.log("dA: "+ err); // never happens
});
dA.run(function() {
var dB = domain.create();
dB.on('error', function(err) {
throw err
});
dB.run(function() {
setTimeout(function() {
console.log('dB')
throw 'moo'
},0)
});
});
有没有办法做到这一点的权利?
在一个域中运行的代码创建另一个域的事实不会使它们嵌套。 –
值得一提的是,域API将在未来版本的节点中发生变化。 –