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請求,必須按照嚴格順...