国产探花免费观看_亚洲丰满少妇自慰呻吟_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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 唐海县| 开鲁县| 漾濞| 西丰县| 金山区| 鄂托克前旗| 贵阳市| 闸北区| 孝感市| 同德县| 九寨沟县| 泗阳县| 读书| 观塘区| 含山县| 博罗县| 阿坝县| 嘉义市| 重庆市| 会泽县| 富裕县| 怀柔区| 沙坪坝区| 汽车| 大宁县| 金门县| 衡阳市| 波密县| 昌图县| 宁武县| 安陆市| 孝昌县| 达尔| 连平县| 丹阳市| 泗洪县| 利津县| 江华| 庄浪县| 东丰县| 鸡东县|