ECMAScript 6(ES6)引入了生成器函數(Generator Functions),這是一種特殊的函數,可以在執行過程中暫停和恢復。生成器函數使用 function*
關鍵字定義,并且可以使用 yield
關鍵字來暫停函數的執行。
下面是一個簡單的生成器函數示例:
function* simpleGenerator() {
yield 'Hello';
yield 'World';
}
const generator = simpleGenerator();
console.log(generator.next().value); // 輸出: Hello
console.log(generator.next().value); // 輸出: World
在這個例子中,simpleGenerator
是一個生成器函數。當我們調用它時,它返回一個生成器對象。我們可以使用 next()
方法來控制函數的執行。每次調用 next()
方法時,函數會從上次暫停的地方繼續執行,直到遇到下一個 yield
關鍵字。
生成器函數還可以接收參數,并且可以通過返回對象來傳遞值:
function* counter(start) {
let count = start;
while (true) {
yield count++;
}
}
const counterGenerator = counter(1);
console.log(counterGenerator.next().value); // 輸出: 1
console.log(counterGenerator.next().value); // 輸出: 2
在這個例子中,counter
是一個生成器函數,它接收一個參數 start
并初始化計數器 count
。每次調用 next()
方法時,計數器遞增并返回新的值。
生成器函數非常適合處理異步操作,如處理 I/O、網絡請求等,因為它們允許你在等待異步操作完成時暫停函數的執行,并在操作完成后恢復執行。這使得代碼更加簡潔和易于理解。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。