假设我有这个lambda函数:
exports.handler = (event, context, callback) => { lambda.invoke({ FunctionName: 'longCheckout', InvocationType: 'Event', Payload: JSON.stringify(event, null, 2) // pass params }, function(error, data) { console.log(error, data) callback(null, data); }); };
我想调用longcheckout lambda,它将做一些工作,并向调用lambda发送响应,然后继续执行更长的请求。所以我调用的lambda函数有一个回调参数,但是当我调用传入函数时,在调用lambda时什么也没有发生。这是我叫的lambda的样子
exports.handler = (event, test, callback) => { docClient.update(params, function(err, data) { callback(....) // continue to execute }) }
lambda可以同步调用(使用的默认行为),也可以异步调用。 如果您选择异步调用,两个lambda将同时继续运行,但您将无法获得任何返回值。
一个可行的解决方案是:
docClient.update
读 this 关于异步调用。