我有這個功能。node.js與域的時間間隔異常後不起作用
function runInDomain(func) {
const d = domain.create();
d.on('error', (er) => {
console.log(`error on: ${func.name}`, er, er.stack);
// just ignore
});
console.log(`run in domain: ${func.name}`);
d.run(func);
}
而與此運行,
function bar() {
console.log('bar');
throw false;
}
setInterval(() => { runInDomain(bar) }, 1000); // 'bar' runs only one time.
功能 '酒吧' 只運行一次:
$ node test.js
run in domain: bar
bar
error on: bar false undefined
,但與此,
setInterval(() => { setImmediate(() => { runInDomain(bar) }) }, 1000); // it works!
它工作正常:
$ node test.js
run in domain: bar
bar
error on: bar false undefined
run in domain: bar
bar
error on: bar false undefined
run in domain: bar
bar
error on: bar false undefined
....
我不知道爲什麼第一件事不行,但第二件事不行。任何原因?
你可以在這裏發佈異常輸出嗎? –
@CelsoAgra好的。 – ljh131
忘了描述我的'酒吧'方法,我剛剛添加。 – ljh131