关于es6中的yield

时间:2021-04-10 23:30:11
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script src="../node_modules/babel-core/browser.js"></script>
<script src="../node_modules/babel-polyfill/dist/polyfill.js"></script>
</head>
<body>
<script type="text/babel">
var demo = () => {
console.log(
'this is demo')
}
demo()

function* a(){
console.log(
11)
yield
'kevin';
console.log(
22);
yield
'ivan';
console.log(
33);
yield
'wuhan';
return 'yes';
}

var b = a();
console.log(b.next())
console.log(b.next())
console.log(b.next())
console.log(b.next())

/*
*调用Generator a方法不会执行函数代码,只有调用next方法才会执行
*每次调用next方法遇到yield就会停止运行,如果要继续运行下面的代码需要再次调用next方法
*next方法返回一个json对象,包含两个属性value和done,value是yield后面的值,done的值为false或者true,代表方法里的所有代码是否都已执行完成
*/
</script>
</body>
</html>

npm install babel-core@old //安装5.x的版本

babel-core默认只支持es6语法,对新的API并不支持,如若要支持支持转换完整的ES6特性,需要安装babel-polyfill

npm install babel-polyfill

相关文章