javascript 中使用的引用在 catch 块中不可用

Used Reference in javascript is not available inside the catch-Block

在我们的 Javascript-代码中,我们有一个 try...catch 块。 class 的工作原理如下:

const ourCustomClassFile = require('./customFile');

在customFile.js里面我们定义了一个函数

const sendErrorNotification = (source, reason, scriptposition) => 
{ ...something and write a mail... 
}

我们的主程序在整个脚本中有一个 try-catch 块,如下所示:

const ourCustomClassFile = require('./customFile');
try{
   const inputFolder = this.config.folder.input;    
   const workFolder = this.config.folder.work;  
   const errorFolder = this.config.folder.error;
}catch(error){
   if (fs.existsSync(workFile)) {
               fs.renameSync(workFile, errorFile);
        }

   sendErrorNotification(
        file,
        `Errortext: ${error}`,
        actPosition
           );   
}

函数 sendErrorNotification 在我们主程序的正常代码中工作正常,但在 catch 块中我们得到一个异常:

UnhandledPromiseRejectionWarning: ReferenceError: sendErrorNotification is not defined

所以我只需要知道:为什么函数没有定义?

在你的customFile.js

里面
const sendErrorNotification = (source, reason, scriptposition) => { 
  ...something and write a mail... 
}
module.exports = {
  sendErrorNotification: sendErrorNotification
}

然后,在您的 main.js 文件中,这样调用它:

const ourCustomClassFile = require('./customFile');
...
ourCustomClassFile.sendErrorNotification(..)
...