Javascript 节点异步仅在节点lambda内调用第一个函数

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运行时,上述

使用普通节点脚本(如以下node async)可以很好地工作:

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。非常感谢。