Javascript 你能在lambda中解释这个递归调用背后的逻辑吗?
下面是我从中提取的示例代码,用于在Lambda中执行递归 在第22行(返回新承诺…),函数返回一个承诺给Lambda以调用函数本身(Lambda func)。我的问题是,如果第一个函数仍然需要等待承诺完成,为什么执行会停止 这可能是一个初学者的问题,但我只是不太明白Lambda如何能够同时回归、承诺和完成。第一次运行不应该等待递归调用完成它的执行吗 任何解释都有助于理解这一点:)Javascript 你能在lambda中解释这个递归调用背后的逻辑吗?,javascript,aws-lambda,promise,Javascript,Aws Lambda,Promise,下面是我从中提取的示例代码,用于在Lambda中执行递归 在第22行(返回新承诺…),函数返回一个承诺给Lambda以调用函数本身(Lambda func)。我的问题是,如果第一个函数仍然需要等待承诺完成,为什么执行会停止 这可能是一个初学者的问题,但我只是不太明白Lambda如何能够同时回归、承诺和完成。第一次运行不应该等待递归调用完成它的执行吗 任何解释都有助于理解这一点:) const AWS=require('AWS-sdk') const lambda=新的AWS.lambda() 常
const AWS=require('AWS-sdk')
const lambda=新的AWS.lambda()
常量睡眠=(毫秒)=>{
返回新承诺(解析=>setTimeout(解析,毫秒))
}
常量递归限制=5
exports.handler=异步(事件)=>{
log(JSON.stringify(event,null,4));
等待睡眠(2000年);
event.iteration=event.iteration+1 | | 1
console.log('Iteration:'+event.Iteration+'\n')
如果(event.iteration相关信息在此块中
var params = {
FunctionName: 'lambda-func',
InvocationType: 'Event',
Payload: JSON.stringify(event)
};
上面的InvocationType
表示它是作为Event
调用的(与RequestResponse
相反)。事件调用是异步执行的。lambda.invoke
调用将返回,而无需等待调用完成
参考资料:您发布的代码中没有递归。我没有解释发布的代码来自“lambda func”函数。因此它调用了自己5次。
var params = {
FunctionName: 'lambda-func',
InvocationType: 'Event',
Payload: JSON.stringify(event)
};