ecmascript 6 -有没有办法在aws lambda函数中运行es6组件,特别是承诺和生成器?



ES6在节点v0.12.3中需要使用--harmony标志。

是否有一种方法可以为aws lambda函数这样做?

您可以使用babel转换es6/es7以与节点0.10.x兼容:

http://www.rricard.me/es6/aws/lambda/nodejs/2015/11/29/es6-on-aws-lambda.html

编辑:

还有一个非常酷的AWS lambda部署器Apex,你可以很容易地转换和部署es6/es7代码!示例:https://github.com/apex/apex/tree/master/_examples/babel-webpack

EDIT2:还有一个名为Gordon的AWS lambda部署器,它还可以帮助您将lambda与其他服务集成,例如:

  • APIGateway
  • CloudWatch计划事件(cron)
  • <
  • 监测事件/gh><
  • Dynamodb流/gh><
  • 运动流/gh>
  • S3

他们也有很多有用的例子

AWS Lambda使用v0.10.36,但无论如何我认为我们可以尝试这种方式

var spawn = require("child_process").spawn;
var child = spawn('node', [ "--harmony", "es6.js" ], {
  cwd: __dirname
});

这些答案有点过时了。AWS在2016年4月宣布支持Node.js 4.3.2运行时。4.3.2支持ES6。它也是完全向后兼容的。更多详细信息请访问:

https://aws.amazon.com/blogs/compute/node-js-4-3-2-runtime-now-available-on-lambda/

简单,用蓝鸟。任何需要使用承诺的文件,都要将bluebird纳入范围。

var Promise = require('bluebird');
    Promise.aPromise()
    .then(function () {
       console.log('ftw!');
    })
    .catch(function(err) {
       console.log(err, 'do not forget to catch errors. ever!');
    })

就发电机而言,我们运气不好。bluebird需要最小的v0.12+,在写入时lambda仍然卡在node v0.10.36

相关内容

最新更新