gpt4 book ai didi

javascript - 在将响应发送回客户端之前,如何等待 Mandrill 的交付响应?

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:20 25 4
gpt4 key购买 nike

我正在使用 Koa 和 Node 0.11 构建一个简单的服务器。我希望当用户从我的网站提交查询时向我发送一封电子邮件。当然,如果电子邮件因任何原因无法发送,我想提醒用户,但我不确定“等待”这种情况发生的最佳方法。

我的相关服务器代码非常简单:

app.put('/inquiry', function *() {
var status = yield sendEmail('test', "my message", "me@mysite" );
this.body = status;
});

function sendEmail(subject, message, to) {
var fromEmail = 'you@yoursite.com';
var tags = ['subject'];
var to = {email: to};

return function() {

mandrill('/messages/send',
{
message: {
"from_email":fromEmail,
"to":[to],
"text":message,
"tags":tags
}
},
function (error, response) {
if (error) {
console.log(JSON.stringify(error));
return error;
}
else {
console.log("Mandrill result: "+response);
return response;
}
};
);
};
};

我遇到的问题是 Mandrill.send() 函数不返回任何内容,而且我不确定最好的做法是什么。

最佳答案

您只需将其包装在一个匿名函数中,如下所示:

function sendEmail(subject, message) {
var fromEmail = 'test@elliottregan.com';
var tags = ['subject'];
var to = {email:'oatmealsnap@gmail.com'};

return function(callback) {
mandrill('/messages/send', {
message: {
"from_email":fromEmail,
"to":[to],
"text":message,
"tags":tags
}
},
function (error, response) {
if (error) {
console.log(JSON.stringify(error));
return error;
}
else {
console.log("Mandrill result: "+response);
callback(null, response);
}
}
)}
};

关于javascript - 在将响应发送回客户端之前,如何等待 Mandrill 的交付响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25192122/

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