Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用webpack将wait关键字转换为es5?_Javascript_Webpack - Fatal编程技术网

Javascript 如何使用webpack将wait关键字转换为es5?

Javascript 如何使用webpack将wait关键字转换为es5?,javascript,webpack,Javascript,Webpack,我一辈子都搞不懂如何使用wait将代码转换为有效的es5。我正在使用webpack 3,可以成功地将async函数转换为返回承诺的函数,但在await上出错:模块构建失败:SyntaxError:…:await是一个保留字。我假设我需要一个特定的babel加载程序插件,但我没有看到wait插件。以下是我的网页配置的相关部分: module: { rules: [{ test: /\.js$/, exclude: /(node

我一辈子都搞不懂如何使用
wait
将代码转换为有效的es5。我正在使用webpack 3,可以成功地将
async
函数转换为返回承诺的函数,但在
await
上出错:
模块构建失败:SyntaxError:…:await是一个保留字
。我假设我需要一个特定的
babel加载程序
插件,但我没有看到
wait
插件。以下是我的网页配置的相关部分:

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

更新:

以下是我的网页配置的相关部分:

    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)
    })
}

实际上,在错误的函数上声明了
async

您的
wait
函数不是异步的。你打电话给它,它会立即回复你的承诺

您需要将
async
添加到
this.init
,这是一个异步函数。它不会立即返回,因为它需要等待承诺解决


参考文档:

我看不出您的配置有任何问题。如何使用await,我认为这不是问题所在,您能粘贴代码吗?我正确使用await:
await asyncFunction()我正在使用的插件不支持将wait转换为es5。好的,我明白了。但这些肯定不是语法错误,这就是我得到的。它没有通过
wait wait()。应该有一个网页版本吗?显然,发电机在es2015中,所以它使用这些来代替。