普通函式–一路執行到底
generator函式–可以暫停執行
yield是什麼
yield是es6的新關鍵字,使生成器函式執行暫停,yield關鍵字後面的表示式的值返回給生成器的呼叫者。它可以被認為是乙個基於生成器的版本的return關鍵字。
yield關鍵字實際返回乙個iteratorresult(迭代器)物件,它有兩個屬性,value和done,分別代表返回值和是否完成。
yield無法單獨工作,需要配合generator(生成器)的其他函式,如next,懶漢式操作,展現強大的主動控制特性。
function
*show()
let gun=
show()
;gun.
next()
;//彈出a
//踹一下走一下
gun.
next()
;//彈出b
核心
yield 傳參 ,返回
function
*show()
//傳參
gun.
next(5
)gun.
next(12
)
返回
function
*show()
let gun=
show()
;let res1=gun.
next()
console.
log(res1)
//列印出來的res1是乙個json物件
//let res2=gun.
next()
console.
log(res2)
//最後一步結果return實現
Generator生成器基礎
生成器函式是es6提供的一種非同步程式設計解決方案,語法行為與傳統函式完全不同 function gen let iterator gen console.log iterator 不會輸出hello 是乙個迭代器物件 需要呼叫next方法才會輸出 iterator.next 輸出結果 yield相...
Python程式設計 generator生成器
列表生成式 lst for i in range 10 print lst 0,2,4,6,8,10,12,14,16,18 相當於 lst i 2 for i in range 10 print lst 0,2,4,6,8,10,12,14,16,18 lst i 2 for i in range...
PHP 生成器Generator理解
寄凡 風雪之隅 php手冊 生成器 generator 引用自官網 生成器提供了一種更容易的方法來實現簡單的物件迭代,相比較定義類實現iterator介面的方式,效能開銷和複雜性大大降低。生成器允許你在foreach 塊中寫 來迭代一組資料而不需要在記憶體中建立乙個陣列,那會使你的記憶體達到上限 劃...