學習阮一峯老師的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>