我在AWS上使用Lambda函数,代码用Nodejs编写 我有一个Asynchronus的问题。这是我的问题:
Consigder,我的代码是:
(allProblems).forEach( function(eachProblem){
console.log("User:"+eachProblem.userId)
/*Lambda invoke */
lambda.invoke({
FunctionName: 'invitationHandler',
Payload: JSON.stringify(params, null, 2) // pass params
}, function(error, data) {
/* Code For update data in another table */
console.log("Data saved");
}
})
当前输出为:
User: 1
User: 2
Data saved
User: 3
Data saved
User: 4
Data saved
预期产出:
User: 1
Data saved
User: 2
Data saved
User: 3
Data saved
User: 4
Data saved
请帮我解决这个问题...... 感谢
答案 0 :(得分:0)
您可以使用async / await node functionnality来管理异步调用。
检查文档:https://blog.risingstack.com/mastering-async-await-in-nodejs/
例如,使用您的代码,尝试类似:
try {
(allProblems).forEach(function(eachProblem) {
console.log("User:"+eachProblem.userId)
/*Lambda invoke */
var data = await lambda.invoke({ FunctionName: 'invitationHandler', Payload: JSON.stringify(params, null, 2) // pass params }) console.log("Data saved")
}
}
catch(e) {
console.log(e)
}