松散模式下的Babel v6 - transform-es2015-classes插件抛出SyntaxError:async / await的意外标识符

时间:2015-12-06 13:33:52

标签: javascript async-await ecmascript-6 babeljs loose

我已更新到最新的babel v6。但是我注意到在{({3}})上使用带有松散模式的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 result = await _asyncFunc(returnValue); ^^^^^^^^^^ SyntaxError: Unexpected identifier

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

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

由于这个Babel bug,我需要使用松散模式 - https://github.com/bkonkle/babel-preset-es2015-loose/blob/master/index.js#L8

有任何解决方法吗?

1 个答案:

答案 0 :(得分:1)

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