ES6中的Generator生成器

2021-10-22 16:01:27 字數 2146 閱讀 7488

generator函式,可以通過yield關鍵字,將函式掛起,為了改變執行流提供了可能性,同時為了做非同步程式設計提供了方案

generator函式是分段執行的,yield是暫停執行,next()是恢復執行

1.function後面函式名之前有個*

2.只能在函式內部使用yield表示式讓函式掛起,yield沒有返回值

3.next(引數),傳遞的是上次的yield表示式的返回值

4.return()結束執行

function

*add()

//只是生成了乙個generator函式並沒有執行

let fn =

add(

)//返回乙個遍歷器物件,可以呼叫next()

//next()中傳的引數才是x,y真實的值

使用場景:不具備inerator介面的物件提供了遍歷操作

//題目一

function

*method()

let fn =

method()

console.

log(fn.

next()

);console.

log(fn.

next(10

));//1.()提公升優先順序

傳值給上乙個yield

沒有返回值

//題目二

//生成器generator函式巢狀使用

聊聊ES6中的generator

generator generator 生成器 是es6標準引入的新的資料型別。乙個generator看上去像乙個函式,但函式執行中間可以停止。es6定義generator標準的哥們借鑑了python的generator的概念和語法。話說回來,generator有什麼用呢,讓我們通過幾個函式來看一看...

ES6學習 Generator函式

generator是es6提供的一種非同步程式設計的解決方案。形式上有兩個特徵。一是,function關鍵字和函式名之間有個星號 二是,函式內部使用yield語句,定義不同的內部狀態。function hellogenerator var hw hellogenerator 必須呼叫物件的next方...

ES6中generator函式對ajax請求的控制

generator函式寫法為 function fun 該函式關鍵字為function yield yield相當於return語句。該函式為執行 中斷 執行,只有執行fun.next 才會執行下一步 這樣一種 機制 可以幫我們控制有關係巢狀的ajax請求 情景 先有三個ajax請求,必須按照嚴格順...