如何理解ES6的yield ?

時間 2021-06-01 12:25:50

1樓:roscoe

我怎麼覺得Generator函式改為叫Ratchet函式會更形象些yield就是棘輪的停止,next()的執行就是棘輪的下一次的執行,狀態往復直至done的狀態為true而止。。。

2樓:[已重置]

當我們寫乙個函式在function後面或者函式名字前面加上乙個* 呼叫這個函式返回的就是Generator 而這個函式稱為Generator函式

function *main()

main() // -> [object Generator]

function *learn()

let learnGe = learn() // ->

Generator函式可以只執行函式的一部分以及控制何時執行函式的剩餘部分

learnGe.next() // ->

done 表示 learn函式未執行完畢

value 表示 learn函式中 yield 1中的 1

再次呼叫next()會執行到下乙個 yield之處

learnGe.next() // ->

learnGe.next() // ->

最後執行之return之處 done為true ,value是return 的返回值

了解上面這些可以說就了解了yield的基本含義但深層次的含義還需要看具體的介紹

這裡可以讓你理解yield的深層含義 優美的為js中的yield賦能

3樓:阿慶

Generator函式本意是iterator生成器,函式執行到yield時退出,並保留上下文,在下次進入時可以繼續執行,關於Generator可以看這篇 https://

hacks.mozilla.org/2015/05/es6-in-depth-generators/,現在這個特性作為協程使用將異部流程改造成同步,參見 http://www.

如何評價蔚來 ES6?

1217 蔚來es6,我親戚有一台,剛買的,開回老家的時候,不少老頭小孩圍過來看,都認為這台車不簡單。怎麼說那,空有車殼,也不對,所以我問了一下我的親戚感受。還是那句話,看起來是真的帥啊,充滿未來感,要不怎麼叫蔚來嘞。裸車售價在35.80 54.80萬元之間。說實話不便宜哦。ES6是一款全新的車款,...

es6的forEach如何跳出迴圈?

刃舞 嚴格來說 Array.forEach 是迭代方法不是流程控制語句,所以不需要提供類似 continue break 的操作 如果你需要跳出迴圈,應該用流程控制語句 for 寫迴圈 威老 Valor throw?try catch?看得我心臟病都要犯了。some 不香嗎?判斷是否存在至少乙個符合...

如何評價蔚來ES6這款車?

五星阿鄉 已經試駕過了,我覺得總體很不錯啊!動力好,操控輕鬆,內飾精緻,續航我試不來,自己去試試,不要人云亦云的,網上噴子比較多,基本上一上來就亂噴的非理性的回答,樓主大可遮蔽 易車 相信大家第一次聽到蔚來ES6的時候,心中肯定會有這樣的疑問 這會是一輛尺寸更小的低配版ES8嗎?其實不然,蔚來ES6...