使用babel js编译asyn / await到es5

时间:2017-01-15 15:37:26

标签: javascript babeljs ecmascript-5 ecmascript-2017

我的小项目包含单个.html文件和一个.js文件。我使用asyn / await函数的问题所以我需要将它转换为es5以确保一切正常。

所以,我的.html文件看起来像这样:

class MyClass{

    constructor(){
        this.calculate = async function () {
           await func1();
        }
    }

    async function func1() {
      for (var i = 0; i < 3; i++) {
         await func2(); // await in loop until func2() completed 
      }
    }

    async function func2() {
       for (var i = 0; i < 10; i++) {
         await func3(); //wait until func3 and then continue looping
       }
    }

    function func3() {
      return new Promise(resolve => setTimeout(resolve, 1000));
    }


}

这是我的src.js

writen(socket, data_size, 2, retry_on_interrupt);

现在主要问题 - 如何将其转换为es5 ,因此它可以在Internet Explorer中100%运行。我读了很多关于&#34; babel&#34;但我发现的一切都是不可理解或过时的。 那么有人可以写一个简短的分步指南如何安装和编译这个小项目吗?

1 个答案:

答案 0 :(得分:2)

假设您想快速运行脚本以使用babel转换es5代码,请按照以下说明操作:

  • 你要做的第一件事就是设置一个小节点项目。 如果您从未设置过节点项目goto: https://nodejs.org/en/download/

  • 只要全局拥有npm,您就可以转到项目文件夹并输入: npm init 这将创建一个package.json文件。

  • 转到:https://babeljs.io/docs/setup/#installation 然后单击CLI并按照上述所有步骤操作。

  • 确保为babel安装正确的预设以转换异步等待。您需要es2015和stage3预设以及运行时插件。

    • http://babeljs.io/docs/plugins/preset-es2015/#install
    • http://babeljs.io/docs/plugins/preset-stage-3/#install
    • https://babeljs.io/docs/plugins/transform-runtime/#installation
    • 结帐Transpile Async Await proposal with Babel.js?以获得更少的设置。