catch-Block内部不提供javascript中的参考

问题描述 投票:1回答:1

在我们的Javascript代码中,我们有一个try ... catch-block。该类的工作方式如下:

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

所以我只想知道:为什么未定义函数?

javascript node.js try-catch referenceerror
1个回答
4
投票

在您的customFile.js内部

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

然后,在您的main.js文件中,这样命名:

const ourCustomClassFile = require('./customFile');
...
ourCustomClassFile.sendErrorNotification(..)
...
© www.soinside.com 2019 - 2024. All rights reserved.