首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Firebase异步等待样式的云功能

Firebase异步等待样式的云功能
EN

Stack Overflow用户
提问于 2017-06-08 19:40:04
回答 6查看 27.6K关注 0票数 43

看起来云函数不支持异步等待符号。有没有办法让我用巴别尔,直到他们做了,或者它是建议使用承诺?

我目前在节点上的功能如下:

代码语言:javascript
运行
复制
exports.getToken = async (req, res) => {
  //1. Generate token from Braintree
  const result = await gateway.clientToken.generate();

  //2. Return the client token
  res.json(result.clientToken);
};
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-06-08 20:22:46

云函数运行LTS版本的node.js,根据文档的说法,目前的版本是6.14.0。节点6.x支持EcmaScript 6,不包括异步/等待

但是,您可以用TypeScript编写代码,并将其转换到ES5/ES6,这将有效地将异步/等待的使用转换为承诺。一项网络搜索表明,也许可以使用这个插件来帮助Babel进行类似的转换。

值得注意的是,Firebase现在允许您使用本机TypeScript支持初始化一个新的云函数项目,这正是Firebase团队目前推荐给开发人员的。

如果您不想使用TypeScript,现在也可以选择节点8(它目前处于测试版,并支持异步/等待普通JavaScript)作为部署目标。您可以使用按照文档编辑package.json来指示您的函数应该部署到节点8。

票数 46
EN

Stack Overflow用户

发布于 2018-10-05 12:18:35

现在您可以使用Node.js版本8,方法是在functions/package.json中添加此内容。

代码语言:javascript
运行
复制
"engines": {
   "node": "8"
}

示例:https://github.com/firebase/functions-samples/blob/Node-8/authenticated-json-api/functions/package.json

票数 39
EN

Stack Overflow用户

发布于 2018-01-19 18:50:53

我没有使用transpile,而是在遵循这个非常漂亮的柱子并查看这个储存库之后,对javascript进行了转储。

基本上你可以:

代码语言:javascript
运行
复制
npm install -g @babel/cli @babel/core @babel/preset-env
  • 更新: 我对巴贝尔的版本"7.0.0-beta.51“很不满意。"7.0.0-beta.44“仍然可以。 切换到稳定版本6 npm安装

在项目文件夹中创建文件.babelrc

代码语言:javascript
运行
复制
{
  "presets": [
    ["@babel/env", {
      "targets": {
        "node": "6.11.5"
      }
    }]
  ]
}

将“函数”文件夹移动到"firebaseFunctions“文件夹,然后运行

代码语言:javascript
运行
复制
babel firebaseFunctions --out-dir functions --copy-files --ignore firebaseFunctions/node_modules

或对要传输的每个文件运行此命令。

代码语言:javascript
运行
复制
babel originalfile.js --out-file transpiledfile.js
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44444273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档