ES 生成器Generator函式

2021-09-25 20:31:31 字數 443 閱讀 3370

1、generator函式的特徵

2、生成器函式與普通函式呼叫方法一樣,不同的是,呼叫生成器函式後,該函式並不執行,返回的也不是函式執行結果,而是乙個指向內部狀態的指標物件,即遍歷器物件;

3、next方法用於取出generator函式中的值;

4、每次呼叫next方法,內部指標就從函式頭部或上一次停下來的地方開始執行,直到遇到下乙個yield語句或return語句為止(即generator函式是分段執行的,yield語句是暫停執行的標記,而next方法可以恢復執行);

5、每次呼叫遍歷器物件的next方法,就會返回乙個有著value和done兩個屬性的物件。value屬性表示當前的內部狀態的值,是yield語句後面那個表示式的值;done屬性是乙個布林值,表示是否遍歷結束。

6、yield*語句,用來在乙個generator函式裡面執行另乙個generator函式

ES6之生成器(Generator)

目錄 深入理解 新語法 yield 生成器與協程 通過一段程式,持續迭代或列舉出符合某個公式或演算法的有序數列中的元素。function fibo let generator fibo for let i 0 i 10 i 生成器函式和普通函式的語法差別在於,在 function 語句之後和函式名之...

ES6 Generator 生成器 函式

es6 新引入了 generator 函式,可以通過 yield 關鍵字,把函式的執行流掛起,為改變執行流程提供了可能,從而為非同步程式設計提供解決方案。基本用法 generator 有兩個區分於普通函式的部分 其中 用來表示函式為 generator 函式,yield 用來定義函式內部的狀態。fu...

Generator生成器基礎

生成器函式是es6提供的一種非同步程式設計解決方案,語法行為與傳統函式完全不同 function gen let iterator gen console.log iterator 不會輸出hello 是乙個迭代器物件 需要呼叫next方法才會輸出 iterator.next 輸出結果 yield相...