Generator 简介
? ? ??Generator 就是一種狀態機,封裝多個內部狀態。
? ? ? 執行 Generator 函數會返回一個遍歷器對象(),也就是說,Generator 函數除了狀態機,還是一個遍歷器對象生成函數。返回的遍歷器對象,可以依次遍歷 Generator 函數內部的每一個狀態。
? ? ? ?形式上,Generator 函數是一個普通函數,但是有兩個特征。一是,function關鍵字與函數名之間有一個星號;二是,函數體內部使用yield表達式,定義不同的內部狀態(yield在英語里的意思就是“產出”)。
? ? ? 然后,Generator 函數的調用方法與普通函數一樣,也是在函數名后面加上一對圓括號。不同的是,調用 Generator 函數后,該函數并不執行,返回的也不是函數運行結果,而是一個指向內部狀態的指針對象,也就是上一章介紹的遍歷器對象(Iterator Object)。
? ? ? 下一步,必須調用遍歷器對象的next方法,使得指針移向下一個狀態。也就是說,每次調用next方法,內部指針就從函數頭部或上一次停下來的地方開始執行,直到遇到下一個yield表達式(或return語句)為止。換言之,Generator 函數是分段執行的,yield表達式是暫停執行的標記,而next方法可以恢復執行
? ? ? 詳情:http://es6.ruanyifeng.com/#docs/generator
?
轉載于:https://www.cnblogs.com/cnlg123/p/8467069.html
總結
以上是生活随笔為你收集整理的Generator 简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kali操作系统SSH问题解决方案
- 下一篇: 除了给予人权,欧洲议会还要让机器人纳税