这是在aws lambda函数中运行的代码。
C:\Users\MUB\AppData\Roaming\npm
现在我确实收到了要在控制台中打印的消息。但我想使用exports.handler中的回调函数显示在控制台中打印的相同消息。
我尝试在exports.handler中使用各种方法使用回调函数,但我总是得到null。我知道在节点js脚本中所有的函数调用都是异步的,所以如何从任何函数返回一个值并在exports.handler中回调相同的函数,即在执行结果中显示相同的值。
答案 0 :(得分:9)
这是lambda的旧版本,即Node.js运行时v0.10.42。新的AWS版本回调有两个参数,即Node.js runtime v4.3或v6.10
回调(response_error,response_success)
module.exports.publisher = (event, context, callback) =>
{
callback(response_error, response_success)
}
我倾向于传递状态代码,以防我想在工作完成后使用结果:
const response_success = {
statusCode: 200,
body: JSON.stringify({
message: 'ok'
}),
};
const response_error = {
statusCode: 400,
body: JSON.stringify({
message: 'error'
}),
};
if (error) {
callback(response_error)
} else {
callback(undefined, response_success)
}
参考:http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html
答案 1 :(得分:5)
你应该调用callback
函数本身 - 作为参数传递给exports.handler
。
E.g:
exports.handler = (event, context, callback) => {
mqfunc1(callback);
};
var mqfunc1 = function(callback) {
callback({'result': 'success'});
};