2016-04-03 23 views
0

バベルはWebPACKのを使用して、次のスニペットや構成に待つexeptすべてを正しくtranspiles:バベルは非同期ですが、待っていませんか?

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 

今、奇妙なことは、最後の行で、私は "を得ることであり、予期しないトークン "エラーフォームが表示されます。どのようにすることができますか?

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'], 
    } 
} 

答えて

3

、それはasync機能に包まれなければならawait使用します。

だからあなたが変更することができます。

let y = await myMethod(2); 

をする:

async function main() { 
    let y = await myMethod(2); 
} 

main(); 

、それが動作するはずです。

関連する問題