2017-10-27 8 views
1

awaitを有効なes5に使用してコードを変換する方法を解明することはできません。私はwebpack 3を使用しており、async関数を約束を返す関数に変換することはできますが、awaitのエラー:Module build failed: SyntaxError: ...: await is a reserved wordに変換できます。私は特定のbabel-loaderプラグインが必要だと仮定しましたが、awaitのプラグインは表示されません。私のwebpack設定の関連部分は次のとおりです:webpackを使用してawaitキーワードをes5に変換するにはどうすればよいですか?

 module: { 
     rules: [{ 
      test: /\.js$/, 
      exclude: /(node_modules|bower_components)/, 
      use: { 
      loader: 'babel-loader', 
      options: { 
       presets: ['es2015', 'stage-0'], 
       plugins: ["syntax-async-functions","transform-regenerator"], 
      } 
      } 
     } 
     ] 
    } 

私がしようとしていることは可能ですか?

UPDATE:

ここに私のWebPACKの設定の関連部分は、今だ:

module: { 
     rules: [ 
     { 
      test: /\.js$/, 
      exclude: /(node_modules|bower_components)/, 
      use: [{ 
      loader: 'nodent-loader', 
      options: { 
       promises: true, 
       wrapAwait: true 
      } 
      }, 
      { 
      loader: 'babel-loader', 
      options: { 
       presets: ['es2015', 'stage-0'], 
       plugins: ["syntax-async-functions","transform-regenerator"], 
      } 
      } 
      ] 
     } 
     ] 
    } 

そして、ここでは、私がコンパイルしようとしているコードです:

module.exports = async function() { 
    var x = await wait() 
} 

async function wait() { 
    return new Promise(function(resolve) { 
     setTimeout(function() { 
      resolve() 
     },1000) 
    }) 
} 
+0

私はあなたの設定のいずれかの問題が表示されません。あなたはどのように待って、私は問題だと思う、あなたはコードを貼り付けることができますか? –

+0

私は正しくawaitを使用しています: 'await asyncFunction();'私が使っているプラ​​グインは、待っていることをes5に変換することをサポートしていません。 –

答えて

1

あなたが実際にasyncを宣言しました間違った関数で

wait機能が非同期ではありません。あなたはそれを呼び出し、すぐに約束を返します。

asyncthis.initを追加する必要があります。これは非同期機能です。それは解決する約束をawaitする必要があるのですぐに戻ることはありません。

は参照用のドキュメントを参照してください:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function

+0

わかりました。しかし、確かにそれらは構文エラーではありません。これは私が得たものです。それは '待って待ってください'を渡されませんでした。 –

+1

私はこれを発見しました:https://babeljs.io/docs/plugins/transform-async-to-generator/。 Webpackのバージョンが必要ですか?どうやらジェネレータはes2015にあるので、代わりにそれらを使用します。 –

関連する問題