有事没事领个红包

es6编写generator报错

首先babel基础包(不安装额外东西)并不是支持完整的es6语言

自己写的如下代码

let generator = function* () {
        yield 1;
        yield * [2,3,4];
        yield 5;
        
    };

    var gen = generator();
    console.log('1',gen.next());
    console.log('2',gen.next());
    console.log('3',gen.next());

报错

"D:\Program Files\JetBrains\WebStorm 2017.2.5\bin\runnerw.exe" "D:\Program Files\nodejs\node.exe" D:\chengxu\vue\pro2\dist\app\class\src\lesson1.js
D:\chengxu\vue\pro2\dist\app\class\src\lesson1.js:34
	var generator = /*#__PURE__*/regeneratorRuntime.mark(function generator() {
	                             ^

ReferenceError: regeneratorRuntime is not defined
    at Object.<anonymous> (D:\chengxu\vue\pro2\dist\app\class\src\lesson1.js:34:31)
    at Module._compile (module.js:635:30)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)
    at Function.Module._load (module.js:489:3)
    at Function.Module.runMain (module.js:676:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3

Process finished with exit code 1

 

自己的环境如下

{
  "name": "pro2",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-polyfill": "^6.26.0",
    "babel-preset-es2015": "^6.24.1"
  }
}

 

解决方法:在自己的项目js文件中最开头写上import "babel-polyfill"; 在运行,就可以成功运行。

1 { value: 1, done: false }
2 { value: 2, done: false }
3 { value: 3, done: false }

  

 

posted @ 2017-12-09 16:22  crazyCodeLove  阅读(416)  评论(0编辑  收藏  举报