Post

Javascript Generator Functions

Javascript Generator Functions

Ref: [function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)

function* 宣告 generator function。呼叫它不會執行內容,而是回傳一個 generator 物件;每次 next() 執行到下一個 yield 就暫停。

1
2
3
4
5
6
7
8
9
10
function* idGenerator() {
  let id = 1;
  while (true) {
    yield id++;
  }
}

const gen = idGenerator();
gen.next().value; // 1
gen.next().value; // 2
  • next() 回傳 { value, done }
  • 執行完(或 return)之後 done 才會是 true,上面的無限迴圈寫法永遠不會 done。
This post is licensed under CC BY 4.0 by the author.