我正在尝试实现仅在数据写在数据库上时发送电子邮件的代码。因此,如果写入了数据,则该函数应返回true,这样我就可以发送邮件了。
这是send mail
函数:
module.exports = {
sendMail: function(subscriber, type) {
transporter.sendMail(mailOptions(subscriber, type), function (err, info) {
if (err) {
throw err;
}else if(type == consts.emailType.REINSCRIPTION){
db.update({_id:subscriber._id}, { $set: { subscribed: true} }, {}, err => {
console.log('Reinscription mail sent!', info);
})
} else if(type == consts.emailType.REMINDER) {
db.update({ _id: subscriber._id }, { $set: { reminder: true } }, {}, err => {
console.log('Reminder mail sent!', info);
})
} else if(type == consts.emailType.FEEDBACK) {
db.update({ _id: subscriber._id }, { $set: { feedback: true } }, {}, err => {
console.log('Feedback mail sent! ', info);
})
}
})
}
如果我没记错,transporter
返回一个Promise,所以我正在尝试这样做以接收sendMail返回:
mail.sendMail(subscriber, consts.emailType.REMINDER)
.then(info => console.log("mail was sent" + info.messageId))
.catch(err => console.log("mail wasnt send:" + err));
因此,如何检查数据库是否已更新,返回数据库并在then
或catch
子句中对其进行处理
我试图弄清楚。