0
我正在使用AWS lambda进行应用程序使用promise从dynamo获取多条记录。最初,我设置了我的context.callbackWaitsForEmptyEventLoop = true,所以处理程序将等待,直到承诺解决。一旦承诺解决,我设置context.callbackWaitsForEmptyEventLoop = false,然后调用callback(null);AWS lambda运行先前事件的队列剩余函数
如果在Promise解析后没有设置callbackWaitsForEmptyEventLoop = false,那么即使在我调用callback(null)(某些库函数可能仍然在事件队列中)后,该函数也会超时。
因此,问题是如果运行时再次用于下次,先前在事件队列中留下的功能正在恢复,而不是重新开始。有没有办法解决这个问题,甚至可以清空以前的事件队列?
context.callbackWaitsForEmptyEventLoop = true;
allPromises = getDatafromDynamo();
allPromises.then(results => {
console.log('Results are', JSON.stringify(results));
context.callbackWaitsForEmptyEventLoop = false;
callback(null, 'DONE');
return;
}).catch((err) => {
console.log("Error occurred", err);
context.callbackWaitsForEmptyEventLoop = false;
callback(err);
});