我假设我在诺言方面缺乏一些基本知识。我有一个在AWS Lambda内的流程,该流程下载三个文件,然后生成通过电子邮件发送的输出。
module.exports.test = async (event) => {
var p = download1();
var c = download2();
var h = download3();
await Promise.all([p, c, h]).then(() => {
... bunch of logic manipulating the data
customers.forEach(i => {
buildFile().then(data => {
sendEmail(data).then(response => {
console.log('Email sent successfully');
});
});
});
}, errHandler);
};
buildFile和sendEmail函数都返回Promise,但是我从没收到“电子邮件已成功发送”消息。它运行代码,但实际上不会在Lambda完成之前返回(至少我认为这是正在发生的事情)。
我的理解是Promise将完成回调,但是现在我想我需要做的事情与在原始Promise.all()中进行下载的方式类似。那是正确的方向吗?
该过程应获取文件,然后遍历客户以创建每个文件并通过SES发送。
梵蒂冈之花
慕的地6264312
相关分类