在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ es6迭代器和生成器的使用場景

es6迭代器和生成器的使用場景

如題,最近拜讀了ZAKAS的understanding ECMAScript6, 在迭代器和生成器章節(jié),講了很多迭代器的用法,和使用場景,大概總結(jié)下也就是兩條

  1. 用于自定義的迭代邏輯,為for-of服務(wù)
  2. 利用yield實現(xiàn)異步操作

雖然書中講的很棒,但不免有些疑惑

對于第一個場景,感覺默認(rèn)迭代器已經(jīng)能滿足大部分迭代的需求,好像能用到*function的機會不多,如果只是為了適應(yīng)某種特殊的循環(huán)邏輯而使用迭代器,感覺有些大材小用。

對于第二個場景,實現(xiàn)異步有很多方法啊,純es6可以用promise,angular里可以用rxjs,那為什么還要用generator去實現(xiàn)異步呢。

而且還有一個非常關(guān)鍵的問題是,只有在輸出代碼是es6風(fēng)格時,才允許使用*function,這也就意味著對無法識別es6語法的瀏覽器會完全不兼容。

這樣總的看下來,迭代器不就處于一種上下都不沾的尷尬場景,不知道大家在實際項目工作中,是如何使用迭代器的,又是如何解決兼容性問題的呢

回答
編輯回答
神曲

生成器并不是實現(xiàn)異步操作而是可以改造異步為同步
可以看一下co函數(shù)的源碼幾十行
利用Generatorpromise異步操作改成同步,實現(xiàn)async await的效果

2018年5月5日 23:43