达到配额时如何捕获未经授权的 Sendgrid 错误?

How to catch Unauthorized Sendgrid Error when quota is reached?

我使用这个简单的代码通过 Sendgrid 发送电子邮件没有问题:

const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);

const sendWelcomeEmail = (email, username, code) => {
    sgMail.send({
        to: email,
        from: 'example@gmail.com',
        subject: 'Welcome!',
        html: '<h3Welcome</h3>'
    });
};

然而,当达到 Sendgrid 配额时(即 100 个免费 email/day),我在服务器上收到此错误:

(node:5060) UnhandledPromiseRejectionWarning: Error: Unauthorized
    at Request._callback (C:\...\node_modules\@sendgrid\client\src\classes\client.js:124:25)

[...]

(node:5060) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.


我一直在不同的地方尝试一些 try catch 块,但没有成功。 谢谢

这是 tiguchi 评论,我 post 它作为接受的答案 :

这是一个 NodeJS 警告,告诉您向该承诺添加错误处理。只需在发送调用后附加一个 .catch(error => console.error(error)) – tiguchi