javascript - node async 仅在 node-lambda 内部调用第一个函数

标签 javascript node.js asynchronous lambda aws-lambda

使用像下面的 Node 异步这样的普通 Node 脚本就可以正常工作:

async = require('async');

async.waterfall([
    function (c) {
        console.log(1);
        c(null);
    },        
    function (c) {
        console.log(2);
        c(null);
    }       
  ]);

以上通过 node test.js 运行时打印出:

1
2

...正如预期的那样。

但是,如果我将代码放在 node-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_modules/.bin/node-lambda run 时只调用第一个方法

==================================
1
==================================

我正在使用:

  • 异步 1.5.2,
  • Node 5.5.0
  • Node -lambda 0.1.5

最佳答案

您正在使用异步代码。 显然,代码 context.done( ); 完成主函数 handler 和其他异步代码( waterfall 中的第二个函数)的执行无法执行,它没有时间足够,因为主要功能已经完成。

关于javascript - node async 仅在 node-lambda 内部调用第一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35528365/

相关文章:

Java - 顺序异步执行

python - 分布式 Tensorflow 中的异步训练如何工作?

javascript - 使用 oauth2 检索 Google 地方信息 client_id

javascript - 如何从 javascript/jQuery 中调用另一个函数的函数获取返回值?

javascript - iBooks JavaScript 资源

mysql - 如何使用 NodeJs ORM 模块在 mySQL DB 中选择不同的行?

node.js - 如何防止可传递的开发依赖被收缩包装

javascript - 如何在 HTML 中播放多首 mp3/歌曲?

node.js - Nodejs 任何文件系统提供者

javascript - 带有回调的函数在函数完成之前执行回调