我遇到了让异步/等待转换工作的问题。我遗漏了什么?
我的.babelrc:
{
"presets": [ "es2015", "stage-0" ]
}我的package.json (截图):
{
"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"
}输出:
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)发布于 2015-11-11 12:05:12
根据这篇文章,你需要有babel-polyfill
Babel 6 regeneratorRuntime is not defined with async/await
希望它能对您有所帮助:)
编辑:
它不一定是babel-polyfill,但它是我唯一使用的。
正如Gothdo所说:await关键字必须在函数作用域中。此外,此函数定义必须具有async关键字。
这意味着您不能在顶级作用域中使用await关键字。
发布于 2016-03-03 05:26:13
看起来异步/等待仅在babel-preset-stage-3中可用
http://babeljs.io/docs/plugins/preset-stage-3/
发布于 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/
https://stackoverflow.com/questions/33641593
复制相似问题