首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >babel 6异步/等待:意外的标记

babel 6异步/等待:意外的标记
EN

Stack Overflow用户
提问于 2015-11-11 07:24:25
回答 5查看 20.8K关注 0票数 16

我遇到了让异步/等待转换工作的问题。我遗漏了什么?

我的.babelrc:

代码语言:javascript
复制
{
  "presets": [ "es2015", "stage-0" ]
}

我的package.json (截图):

代码语言:javascript
复制
{  
  "babel-core": "^6.1.2",
  "babel-plugin-transform-runtime": "^6.1.2",
  "babel-preset-es2015": "^6.1.2",
  "babel-preset-stage-0": "^6.1.2"
}

输出:

代码语言:javascript
复制
babel src/server
SyntaxError: src/server/index.js: Unexpected token (7:21)
   5 |
   6 | try {
>  7 |   let server = await server('localhost', env.NODE_PORT || 3000)
     |                      ^
   8 |   console.log(`Server started on ${server.info.uri}`)
   9 | } catch (err) {
  10 |   console.error('Error starting server: ', err)
EN

回答 5

Stack Overflow用户

发布于 2015-11-11 12:05:12

根据这篇文章,你需要有babel-polyfill

Babel 6 regeneratorRuntime is not defined with async/await

希望它能对您有所帮助:)

编辑:

它不一定是babel-polyfill,但它是我唯一使用的。

正如Gothdo所说:await关键字必须在函数作用域中。此外,此函数定义必须具有async关键字。

这意味着您不能在顶级作用域中使用await关键字。

票数 12
EN

Stack Overflow用户

发布于 2016-03-03 05:26:13

看起来异步/等待仅在babel-preset-stage-3中可用

http://babeljs.io/docs/plugins/preset-stage-3/

票数 2
EN

Stack Overflow用户

发布于 2016-03-15 12:09:36

你可以使用transform-async-to-module-method插件自己编译它们,这允许你将它们编译成需要ES6生成器(在node4中可用)的bluebird协同例程。

或者,如果您需要将其编译回ES5,以便与浏览器兼容,您可以使用transform-async-to-generator和facebook的regenerator

我已经在这里写了关于如何设置你的babel配置的http://madole.xyz/async-await-es7/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33641593

复制
相关文章

相似问题

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