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);
});