Выяснил: после отправки запроса - лямбда завершается.
По крайней мере в случае с Zeit Now, а это надстройка над AWS Lambdas.
На мой вопрос - что с этим делать, они ответили "You are looking for queue support. You would put that job in queue to be consumed by another resource. We will release this in the future and I will contact you when its live."
Похоже, придется использовать костыль - всю асинхронную часть оборачивать, потому что это в примере, функция всего одна. На деле - их много, и они по разным модулям сидят.
const __async=(promise)=>{
if (!process.promises || !Array.isArray(process.promises)) process.promises=[];
process.promises.push(promise)
}
const __withasync= (handler)=>{
return async (req,res)=>{
var result = await handler(req,res);
if (process.promises && Array.isArray(process.promises)) await Promise.all(process.promises);
return result;
}
}
module.exports={__async,__withasync}
Если есть решение лучше - дайте знать