當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。