generator,yield個人理解

2022-08-23 13:12:14 字數 1011 閱讀 6844

實驗**:

1

function

test1(arg),200)6}

78function

test2(),0)12}

13//

編寫乙個generator;

14function *gen()

2021

var it = gen();

1.**存在乙個gen()函式, 第14行 存在兩個yield 語句,(15,17)

2. 執行gen()函式(21行),以為是generator函式,所以函式體內語句不會執行,只是返回乙個迭代器,

3.在console 中執行 it.next(),

gen函式會執行到第乙個yield語句(15行),gen函式在此停止,並且觸發test1函式,輸出 "先執行,並不觸發",

4. 再執行 it.next(),gen()函式從剛才停止位置開始執行: 16~17行

因為a無返回值,所以首先輸出的是 undefined;

執行到17行,gen()函式理應在此停止,因為觸發的test2 函式體內觸發了 it.next(『第乙個』),所以gen()函式返回值並且繼續向下執行;

it.next() 在test1,test2 函式中的作用是:返回值給當前yield,並且觸發下乙個 yield 執行

取消test1中注釋的 it.next(arg), 觸發gen() 執行會一直執行到gen()函式結束

問題點: 

1.test1, test2 中的it.next()並不輸出 ,

2. 在 test1 中可以獲取下乙個yield 中的 

3. it.next() 產生的 , 其中的value 就是其觸發的yield 後面跟得表示式產生的值;

generator yield到底是個啥

先來乙個函式 function show let gen show gen.next 12 gen.next 5 通過函式我們可以看到,定義a接收了yield傳進來的引數,現在請大家和我玩個遊戲,猜猜看a是幾 好了,不賣關子了,咱們執一下看看 那麼現在反過來就有乙個問題了,可能有些人會說,等會,我有...

個推mastersecret 個推

例項 function igtnotificationtemplatedemo template new igtnotificationtemplate 應用應用 template set transmissiontype 1 透傳訊息型別 template set transmissioncont...

9 個 笑 話 9 個 道 理

1 建築師 一位夫人打 給建築師,說每當火車經過時,她的睡床就會搖動。這簡直是無稽之談1建築師回答說,我來看看。建築師到達後,夫人建議他躺在床上,體會一下火車經過時的感覺。建築師剛 躺下,夫人的丈夫就回來了。他見此情形,便厲聲喝問 你躺在我妻子的床上幹什麼?建築師戰戰兢兢地回答 我說是在等火車,你會...