javascript - Babel v6 - 宽松模式下的transform-es2015-classes插件抛出SyntaxError : Unexpected identifier for async/await

标签 javascript async-await ecmascript-6 babeljs loose

我已经更新到最新的 babel v6。但是我注意到,在( https://github.com/bkonkle/babel-preset-es2015-loose/blob/master/index.js#L8 )上使用松散模式的 transform-es2015-classes 插件会破坏 async/await 函数。例如:

function _asyncFunc (value) {
  return new Promise((resolve) => {
    setTimeout(() => resolve(value), 10);
  });
}

class TestActions {
  async asyncAction(returnValue) {
    const result = await _asyncFunc(returnValue); // exception here
    return result;
  }
}

这条线松动了:

var 结果 = wait _asyncFunc(returnValue); ^^^^^^^^^^ 语法错误:意外的标识符

Babelrc 如下所示(我还通过在入口点导入它来使用再生器运行时import 'babel-runtime/regenerator/runtime';):

{
  "presets": [
    "es2015-loose",
    "react",
    "stage-0"
  ]
}

由于 Babel 错误,我需要使用松散模式 - https://phabricator.babeljs.io/T3041

有什么解决办法吗?

最佳答案

这是 Babel v6 中的一个错误,它已在 6.3.15 中修复,只需更新您的软件包即可,pr - https://github.com/babel/babel/pull/3135

关于javascript - Babel v6 - 宽松模式下的transform-es2015-classes插件抛出SyntaxError : Unexpected identifier for async/await,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34117980/

相关文章:

javascript - 我有点困惑 .each() 有什么好处

c# - Asp.Net MVC 5 - 长时间运行的任务 - 如何确保 IIS 回收 AppPool 时工作线程不会被丢弃?

javascript - 从ES5到ES6的superPower功能

javascript - ES6 中的 AngularJS Controller 继承

asynchronous - 在处理来自 Messenger 的消息时,如何安全地运行异步代码?

javascript - React 渲染组件中未捕获的不变违规

javascript - 使 div 可拖动并且父 div 一起移动

javascript - 在 Javascript 中使用 eval 的替代方法

javascript - HTML5 视频播放器 onclick 播放/暂停不起作用

c# - .Net AsyncStateMachine 自定义实现行为