如何在 AWS Lambda 处理程序之外运行异步函数并在处理程序函数中使用其输出?我需要在处理函数运行之前异步初始化各种数据库连接。这样,事件的数据库连接就可以在容器重用时继续存在。
例子:
var i = 'immediate start';
setTimeout(function(){
i = 'delayed start';
}, 5000);
module.exports.handler = function (event, context, callback) {
console.log(i);
//outputs `immediate start` whereas I need to have i = `delayed start` here.
}
最佳答案
您必须创建一个 promise ,然后在 setTimeout()
中的回调函数被触发时解析该 promise 。像这样:
module.exports.handler = function (event, context, callback) {
var i = 'immediate start';
return new Promise((resolve, reject) => {
setTimeout(() => {
i = 'delayed start';
resolve()
})
})
.then(()=>console.log(i))
}
关于node.js - 如何在 AWS Lambda 处理程序触发之前运行异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42823542/