計算機基礎知識Linux篇
阿新 • • 發佈:2021-06-16
Generator:生成器函式(ES6新增的)
Iterator:迭代器(for of只能遍歷可被迭代的值)
生成器物件是由一個 generator function 返回的,並且它符合可迭代協議和迭代器協議。生成器函式返回的結果是一個Generator物件,平時都是搭配yield來使用
function* func(){ console.log(1); yield 'A'; console.log(2); yield 'B'; console.log(3); yield 'C'; } let gt = func();//輸出Generator { } ,建立一個生成器物件,但是方法中的程式碼還沒有執行,基於gt.next()執行函式 console.log(gt.next()); //=>{value: 'A',done:false}在執行的時候遇到一次yield就會暫停一次,返回的物件中value儲存的是yield的結果,done儲存是否已經把程式碼都執行完 console.log(gt.next()); //=>{value: 'B',done:false} console.log(gt.next()); //=>{value: 'C',done:false} console.log(gt.next()); //=>{value: undefined,done:true}
方法
- Generator.prototype.next() 返回一個由 yield表示式生成的值。
- Generator.prototype.return() 返回給定的值並結束生成器。
- Generator.prototype.throw() 向生成器丟擲一個錯誤。