[英]Babel transpiles async but not await?
Babel使用Webpack在以下代码片段和配置中正确地传递了所有内容:
async function myMethod(i) {
let j = i * i;
return j;
}
let x = myMethod(2);
console.log(myMethod)
console.log(x);
let y = await myMethod(2);
结果是:
console.log(myMethod) // returns a function.
console.log(x) // returns a promise
现在,很奇怪的是,在最后一行,我收到了babel的“意外令牌”错误消息。 怎么可能?
Package.json:
"devDependencies": {
"babel": "^6.5.2",
"babel-loader": "^6.2.4",
"babel-polyfill": "^6.7.4",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.5.0",
"babel-preset-stage-0": "^6.5.0",
"react": "^0.14.8"
}
Webpack.config:
var path = require('path');
var webpack = require('webpack');
module.exports = {
context: path.join(__dirname),
entry: ['babel-polyfill', './App/main.js'],
[..]
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: ['es2015', 'stage-0', 'react'],
},
},
],
},
[..]
resolve: {
extensions: ['', '.js', '.jsx'],
}
}
据我所知,要使用await
必须将其包装在async
函数中。
因此,您可以更改:
let y = await myMethod(2);
成为:
async function main() {
let y = await myMethod(2);
}
main();
它应该工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.