当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js Domain.intercept(callback)用法及代码示例


domain.intercept(callback)

此方法几乎与 domain.bind(callback) 相同。但是,除了捕获抛出的错误之外,它还会拦截作为第一个参数发送给函数的 Error 对象。

通过这种方式,常见的if (err) return callback(err); 模式可以在一个地方用一个错误处理程序替换。

const d = domain.create();

function readSomeFile(filename, cb) {
  fs.readFile(filename, 'utf8', d.intercept((data) => {
    // Note, the first argument is never passed to the
    // callback since it is assumed to be the 'Error' argument
    // and thus intercepted by the domain.

    // If this throws, it will also be passed to the domain
    // so the error-handling logic can be moved to the 'error'
    // event on the domain instead of being repeated throughout
    // the program.
    return cb(null, JSON.parse(data));
  }));
}

d.on('error', (er) => {
  // An error occurred somewhere. If we throw it now, it will crash the program
  // with the normal line number and stack message.
});

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 Domain.intercept(callback)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。