我正在为我的应用程序使用 AWS lambda,以使用 Promise 从 dynamo 获取多个记录。最初我设置我的 context.callbackWaitsForEmptyEventLoop = true,所以处理程序将等到 promise 被解决。一旦承诺得到解决,我将设置 context.callbackWaitsForEmptyEventLoop = false 然后调用 callback(null);
如果我在 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);
});