Generator

generatoe函數(shù)的寫法一般如下

function*? demo(){

yield? 'hello';

yield? 'world';

return? 'ending';

}

var p = new demo();

這個函數(shù)不會執(zhí)行而是返回一個遍歷器對象,當(dāng)執(zhí)行.next()會執(zhí)行yield語句,然后返回一個對象

{value:'hello', done: false},當(dāng)next()到return語句時,會返回一個對象{value:'ending', done:true}


******************************************************************

yield必須放在generator函數(shù)中,不然會出錯,yield表達(dá)式如果用在另一個表達(dá)式中,必須放在圓括號中

***********************************************************************

由于generator函數(shù)就是遍歷器生成函數(shù),因此可以把這個函數(shù)賦給一個對象的symbol.iterator屬性

**************************************************************************

function *f(){

?for(var i = 0; true; i++){

var reset = yield i;

if(reset) { i = -1}

}

}

var g = f();

g.next() //{value: 0, done: false}

g.next();//{value: 1, done: false}

g.next(true);//{value:0, done: false}

上面函數(shù)的意思就是在next()中如果傳進(jìn)參數(shù),這個參數(shù)就是上一個yield的返回值

*******************************************************

for of會遍歷generator函數(shù),最常用的用法就是將generator函數(shù)賦給一個對象的symbol.iterator屬性,這樣就可以遍歷了

***************************************************

就是你再generator中拋出的錯誤可以在generator中捕獲,也可以在外層函數(shù)中捕獲

*****************************************************

promise.return()中的參數(shù)作為返回對象的value的值,而done值為true

如果包含try finally那么會等到finally中的語句結(jié)束后在調(diào)用return()

*******************************************************

yield * 用于在generator函數(shù)中嵌入一個generator函數(shù),yield*

后面可以是數(shù)組,或者字符串

**********************************************

generator沒有this,可以將函數(shù)用call在另一對象中運行,或者是generator函數(shù)的原型

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在此處先列下本篇文章的主要內(nèi)容 簡介 next方法的參數(shù) for...of循環(huán) Generator.prototy...
    醉生夢死閱讀 1,488評論 3 8
  • 簡介 基本概念 Generator函數(shù)是ES6提供的一種異步編程解決方案,語法行為與傳統(tǒng)函數(shù)完全不同。本章詳細(xì)介紹...
    呼呼哥閱讀 1,136評論 0 4
  • 本文作者就是我,簡書的microkof。如果您覺得本文對您的工作有意義,產(chǎn)生了不可估量的價值,那么請您不吝打賞我,...
    microkof閱讀 23,852評論 16 78
  • 上一篇介紹了Promise異步編程,可以很好地回避回調(diào)地獄。但Promise的問題是,不管什么樣的異步操作,被Pr...
    張歆琳閱讀 1,549評論 0 13
  • 官方中文版原文鏈接 感謝社區(qū)中各位的大力支持,譯者再次奉上一點點福利:阿里云產(chǎn)品券,享受所有官網(wǎng)優(yōu)惠,并抽取幸運大...
    HetfieldJoe閱讀 6,456評論 9 19

友情鏈接更多精彩內(nèi)容