真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

ES6生成器用法實例分析

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

創(chuàng)新互聯(lián)建站作為成都網站建設公司,專注網站建設、網站設計,有關成都定制網頁設計方案、改版、費用等問題,行業(yè)涉及成都戶外休閑椅等多個領域,已為上千家企業(yè)服務,得到了客戶的尊重與認可。

語法

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

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不太一樣。這個函數(shù)就叫做生成器函數(shù)。生成器函數(shù)看起來和普通的函數(shù)是不是有點相像呢?

它們的區(qū)別如下:

一般的函數(shù)以function開頭,而生成器函數(shù)以function* 開頭。

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

我們看看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方法后,生成器函數(shù)就執(zhí)行到下一個yield位置處。

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

應用

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

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

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


新聞名稱:ES6生成器用法實例分析
文章鏈接:http://weahome.cn/article/jpcjje.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部