繁体   English   中英

如何在AWS Lambda处理程序触发之前运行异步功能

[英]How to run async function before AWS Lambda handler triggers

如何在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))
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM