Aaj*_*aje 3 callback return-value node.js aws-lambda
这是在aws lambda函数中运行的代码.
exports.handler = (event, context, callback) => {
// TODO implement
mqfunc1(func2);
};
var func2 = function(data) {
console.log('got data: '+data);
};
var mqfunc1 = function(callback) {
var myCallback = function(data) {
console.log('got data: '+data);
};
var usingItNow = function(callback) {
callback('get it?');
};
};
Run Code Online (Sandbox Code Playgroud)
现在我确实得到了我想在控制台中打印的消息.但我想使用exports.handler中的回调函数显示在控制台中打印的相同消息.
我尝试在exports.handler中使用各种方法使用回调函数,但我总是得到null.我明白在节点js脚本中所有的函数调用都是异步的,所以如何从任何函数返回一个值并在exports.handler中回调相同的内容,即在执行结果中显示相同的值.
Lev*_*ker 12
这是lambda的旧版本,即Node.js运行时v0.10.42.新的AWS版本回调有两个参数,即Node.js运行时v4.3或v6.10
回调(response_error,response_success)
module.exports.publisher = (event, context, callback) =>
{
callback(response_error, response_success)
}
Run Code Online (Sandbox Code Playgroud)
我倾向于传递状态代码,以防我想在工作完成后使用结果:
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)
}
Run Code Online (Sandbox Code Playgroud)
参考:http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html
你应该调用callback
函数本身 - 作为参数传递的函数exports.handler
.
例如:
exports.handler = (event, context, callback) => {
mqfunc1(callback);
};
var mqfunc1 = function(callback) {
callback({'result': 'success'});
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10611 次 |
最近记录: |