国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

ES6生成器用法實例分析

2019-11-19 16:52:34
字體:
來源:轉載
供稿:網友

本文實例講述了ES6生成器用法。分享給大家供大家參考,具體如下:

語法

何為生成器?讓我們先看看以下代碼:

function* quips(name) { yield "hello " + name + "!"; yield "i hope you are enjoying the blog posts"; if (name.startsWith("X")) {  yield "it's cool how your name starts with X, " + name; } yield "see you later!";}

你沒有看錯,這就是JavaScript代碼。是不是和你曾經認識的javascript不太一樣。這個函數就叫做生成器函數。生成器函數看起來和普通的函數是不是有點相像呢?

它們的區別如下:

一般的函數以function開頭,而生成器函數以function* 開頭

生成器函數中有一個特殊關鍵字就是yield,作用就是暫停函數。配合next方法來調用可以達到一步一步的執行函數的目的。

我們看看next方法的使用:

> var iter = quips("lf"); [object Generator]> iter.next() { value: "hello lf!", done: false }> iter.next() { value: "i hope you are enjoying the blog posts", done: false }> iter.next() { value: "see you later!", done: false }> iter.next() { value: undefined, done: true }

可以看到,每一次next方法后,生成器函數就執行到下一個yield位置處。

基本的生成器語法就講完了。

應用

生成器可以用來異步編程,我在之前的文章中有過介紹,可以參考前面一篇《基于javascript的異步編程實例詳解

但是需要注意的是,生成器并不是用來寫異步的,這僅僅是一種hack手段而已。

希望本文所述對大家ECMAScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 读书| 瑞昌市| 天峻县| 岐山县| 吴桥县| 兴山县| 上思县| 黑山县| 民勤县| 莱芜市| 兴仁县| 马边| 蚌埠市| 玉门市| 柳河县| 陆川县| 司法| 墨脱县| 鄂托克前旗| 绥棱县| 藁城市| 佛山市| 伊春市| 清新县| 扎赉特旗| 馆陶县| 崇仁县| 曲沃县| 罗田县| 陆良县| 南投市| 秦皇岛市| 沂源县| 福泉市| 吕梁市| 德令哈市| 西充县| 合肥市| 定边县| 邮箱| 尚义县|