学习阮一峰老师的ES6入门后的记录es6
至关于一个状态机,返回一个可遍历的对象(该遍历器对象能够用for of等调用遍历接口的方法等调用值),用function*来定义generator函数,yield来标记站厅点
示例:编程
<script> function* helloWorldGenerator() { //function*:定义generator函数 yield 'hello'; //yield:表示暂停执行的标志 yield 111 + 233; //表达式并不会马上计算,只有next到这才开始计算 return 'ending'; } var hw = helloWorldGenerator(); console.log(hw.next()); //.next(),恢复执行 console.log(hw.next()); console.log(hw.next()); console.log(hw.next()); // {value: "hello", done: false} // {value: "344", done: false} // {value: "ending", done: true} // {value: undefined, done: true} //value为当前yield表达式的值,done:boolean,表明遍历是否结束 </script>
async至关于*:表明异步操做的意思
await至关于yield:表明等待执行的意思promise
简单示例:异步
<script> async function helloWorldGenerator() { //function*:定义generator函数 await console.log('hello'); //yield:表示暂停执行的标志 await console.log(111 + 233); //表达式并不会马上计算,只有next到这才开始计算 return 'ending'; } helloWorldGenerator();//普通函数通常执行 //hello //344 </script>