当前位置: 首页 > 面试题库 >

使用Babel在Node 6中使用async / await

朱硕
2023-03-14
问题内容

我正在尝试为Node v6.9.2配置Babel。我想使用async/ await构造。

因为我是Babel和所有Node基础架构的新手,所以我对如何正确配置它感到困惑:

  • 我应该使用什么预设?ES6的大多数功能已经实现了Node。因此,出于性能原因,我不希望Babel移植Node 6.9.x已经支持的功能(箭头功能,新的导入机制等)。

  • 我应该包括哪些插件,以便可以使用异步/等待?我也感到困惑,因为经过一番研究,我发现了几个插件:syntax-async-functionstransform-async-to-generator还有更多。

例子.babelrc会有所帮助。

谢谢


问题答案:

我应该使用什么预设?

您不需要使用任何预设。预设只是插件的集合,如果您要转换一组功能(例如,所有带有ES2015的ES2015 preset- es2015),可以使其更易于使用。但是,当您只想转换这些功能中的一部分时,您只包括相应的插件。

我应该包括哪些插件,以便可以使用异步/等待?

由于Node 6支持生成器,因此可以使用transform-async-to-generator以下代码.babelrc

{
  "plugins": ["transform-async-to-generator"]
}

当然,如果您需要转换更多不受支持的功能,则当然需要添加插件。

babel-preset-env自动确定指定环境所需的插件。这将不包括任何不必要的插件。要指定您当前的Node版本,请使用以下命令.babelrc

{
  "presets": [
    ["env", {
      "targets": {
        "node": "current"
      }
    }]
  ]
}


 类似资料:
  • 我有一个安装了ReactJS的NetCore2应用程序。 null VS代码抛出一个错误,告诉我异步只适用于。ts文件。另外,如果我在任何其他函数中使用await,我将得到一个错误,比如。 据我所知,async/await不仅仅是TS...(或者我错了?)。 谢了!

  • 问题内容: 在循环中使用/ 是否有任何问题?我试图遍历文件数组和每个文件的内容。 这段代码确实有效,但是这可能会出问题吗?我让某人告诉我,您不应该在这样的高阶函数中使用/ ,所以我只是想问一下这是否有问题。 问题答案: 确保代码确实有效,但是我很确定它不会执行您期望的功能。它只会触发多个异步调用,但此后函数会立即返回。 顺序阅读 如果要顺序读取文件, 则不能使用。只需使用现代循环即可,该循环将按预

  • 我有一个webservice,它加载一些插件并调用它们的过程方法。其中一个插件获取成员列表,并确保它们都包含在MailChimp列表中。 在正常的过程代码中,这不会是一个问题。但是,httpClient上唯一可用的Post方法是PostAsync。对于Async/Await来说,我是相当陌生的,我不确定我的其余代码会有什么影响……特别是因为它涉及到我试图重用httpClient而不是为每个http

  • 我正在使用Spring4 AsyncRestTemplate调用外部REST API服务。 在该方法中,我注册来自REST API调用的ListenableFuture响应的回调。 除了单元测试,我不使用返回的ListenableFuture。回调将根据请求的成功或失败来处理我想采取的实际操作。 ExternalServiceImpl.class

  • 问题内容: 我开始使用React Native进行编程,并且习惯于使用以下语法: 但是我不知道如何在共享包中使其与React JS和React Native兼容。我如何才能做到这一点,以使其在两个平台上都能正常工作? 谢谢! 问题答案: React Native带有Babel和一些Babel预设,而Web上的React只是与React相关的代码。 如果您今天想在网络上使用async / await

  • 问题内容: 我们正在更新我们的API,Babel的Henry Zhu提醒我注意此预设,以替换and的需要。 现在,我在理解最简单的方式来处理所有事情时遇到了困难。 我们的API使用节点v8.x和async / await,本机承诺 我要传播算子 我要管道操作员 我想要导入/导出语法 我想支持杰斯特 我喜欢babel-node如何将API转换到内存中 如果我仅向您显示配置的当前位置,这将更加容易: