gpt4 book ai didi

node.js - node js - 当函数依赖于内部的异步函数时,如何从函数返回值

转载 作者:搜寻专家 更新时间:2023-10-31 23:32:47 26 4
gpt4 key购买 nike

我编写了一个发送电子邮件的 Node js 模块。该模块是 nodemailer 模块的包装器。执行 transporter.sendMail 的回调时,我希望我的包装函数 在电子邮件已发送时返回 true,否则返回 false。我怎样才能做到这一点?这是代码:

var nodemailer = require('nodemailer');

module.exports.sendEmail = function (mailerAddress, mailerPassword, to, subject, html) {
var transporter, mailOptions;

transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: mailerAddress,
pass: mailerPassword
}
});

mailOptions = {
from: mailerAddress,
to: to,
subject: subject,
html: html
};

transporter.sendMail(mailOptions, function(error, info) {
if (error) {
return false;
}
else {
return true;
}
});
};

最佳答案

如果我理解,你所说的“包装函数”就是回调函数,所以如果我是正确的,请尝试做这样的事情:

var EmailUtil = {
sendEmail : function sendEmail(mailerAddress, mailerPassword, to, subject, html, callback) {
var options = {
service: 'Gmail',
auth: {
user: mailerAddress,
pass: mailerPassword
}
};
var transport = nodemailer.createTransport(options);

transport.sendMail({
from: mailerAddress,
to: to,
subject: subject,
html: html
}, function(err, responseStatus) {
var val;
if (error) {
val = false;
} else {
val = true;
}
callback(error, val);
});
}
};

module.exports = EmailUtil;

这是我在生产中使用的真实示例。

关于node.js - node js - 当函数依赖于内部的异步函数时,如何从函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33612180/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com