Javascript 节点异步仅在节点lambda内调用第一个函数
使用普通节点脚本(如以下node async)可以很好地工作:Javascript 节点异步仅在节点lambda内调用第一个函数,javascript,node.js,asynchronous,lambda,aws-lambda,Javascript,Node.js,Asynchronous,Lambda,Aws Lambda,使用普通节点脚本(如以下node async)可以很好地工作: async = require('async'); async.waterfall([ function (c) { console.log(1); c(null); }, function (c) { console.log(2); c(null); } ]); 当通过节点test.js运行时,上述
async = require('async');
async.waterfall([
function (c) {
console.log(1);
c(null);
},
function (c) {
console.log(2);
c(null);
}
]);
当通过节点test.js运行时,上述内容将打印出来:
1
2
。。。正如所料
但是,如果我将代码放在节点lambda处理程序中:
var async = require('async');
exports.handler = function( event, context ) {
console.log( "==================================");
async.waterfall([
function (c) {
console.log(1);
c(null);
},
function (c) {
console.log(2);
c(null);
}
]);
console.log( "==================================");
context.done( );
}
当我运行/node\u modules/.bin/node lambda run
==================================
1
==================================
我正在使用:
- 异步1.5.2
- 节点5.5.0
- 节点λ0.1.5
您正在使用异步代码。
显然,代码
context.done()
无法执行主函数处理程序和其他异步代码(瀑布中的第二个函数),因为主函数已经完成,所以没有足够的时间执行。@keithgould我已经更新了答案。尝试删除context.done()代码>到testBoom!就这样@isvforall。非常感谢。