欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

node.js學(xué)習(xí)筆記之generator

呃,今天學(xué)了generator,拿出來做個(gè)標(biāo)記。

為任丘等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及任丘網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、任丘網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

這個(gè)詞在node.js里的做用是為了做異步操作,generator實(shí)際上就是promise的語法糖,什么叫語法糖呢,就是....自己度娘吧。。

我的個(gè)人理解,異步操作就是程序執(zhí)行到generator的yield標(biāo)記的語句時(shí),暫時(shí)暫停當(dāng)前程序的執(zhí)行,然后把被標(biāo)記的代碼執(zhí)行完,到返回結(jié)果的時(shí)候當(dāng)前程序再繼續(xù)執(zhí)行,這樣就可以在被標(biāo)記語句的下一行代碼里使用被標(biāo)記語句得到的結(jié)果。主要用于不確定執(zhí)行時(shí)長(zhǎng)的語句,比如:讀取數(shù)據(jù)庫,讀取文件等。

看代碼:

'use strict';

function * aa(){
	yield 'aa';
}

let a = aa();
console.log(a.next().value);//aa

generator函數(shù)的寫法就是在function 和函數(shù)名之前要有一個(gè)星號(hào)(*),星號(hào)左右最少有一個(gè)空格,可以是貼著function關(guān)鍵字,也可以是貼著函數(shù)名,當(dāng)然兩邊都有空格也是可以的,然后在函數(shù)體里,有需要做異步操作的語句前加上yield,以前看別人的貼子的時(shí)候,要么只有代碼,要么就一兩句解釋,我這人悟性不夠,往往看不懂,這里講的雖然啰嗦,但更容易懂是吧,下面來一行一行的解釋一下這段代碼是什么意思:

首先,定義了一個(gè)generator函數(shù)aa,

函數(shù)體里有需要做異步操作的語句'aa',用yield標(biāo)記,

然后聲明一個(gè)變量a指向aa()返回的遍歷器,對(duì),你沒看錯(cuò),在 let a=aa();這句的時(shí)候aa()方法還沒有執(zhí)行,a在這時(shí)候只是得到aa()的一個(gè)遍歷器,

然后下一句輸出a.next().value,這句的意思是什么?在這之前需要先說明一點(diǎn)。generator函數(shù)的執(zhí)行方式是先生成一個(gè)遍歷器,然后有一個(gè)指針指向最開始執(zhí)行處,然后函數(shù)體中的每一個(gè)yield就是一個(gè)節(jié)點(diǎn),想往下執(zhí)行,就只能用遍歷器的next()方法去指向下一個(gè)yield直到結(jié)束,這一句的意思就是執(zhí)行yield 'aa';這句代碼,本文寫的例子很簡(jiǎn)單,yield 'aa'你可以寫成  yield 讀取文件;

然后等這句執(zhí)行完會(huì)把結(jié)果返回給指針,可以用 next().value取出這個(gè)yield標(biāo)記的代碼執(zhí)行的結(jié)果。

generator函數(shù)可以嵌套:

'use strict';

function * aa(){
	yield 'aa';
}

let test = function* (){
	yield 'hello';
	yield* aa();
	yield 'ok';
}

let test1 = test();
console.log(test1.next().value);//'hello'
console.log(test1.next().value);//'aa'
console.log(test1.next().value);//'ok'

這段代碼和上面代碼唯一的不同是中間嵌套了一個(gè)generator函數(shù)

yield* aa();

那有些童鞋就會(huì)問了,為什么不直接寫 aa();?那是因?yàn)樯衔恼f了,aa()這樣直接調(diào)用generator函數(shù),函數(shù)體是不會(huì)執(zhí)行的,只會(huì)返回一個(gè)遍歷器,函數(shù)體都還沒執(zhí)行,當(dāng)然沒有結(jié)果。

那又有些童鞋會(huì)問,其他的yield 后不是都沒有星號(hào)么?為什么這個(gè)有星號(hào)?這個(gè)問題問的好,不加星號(hào)的話,直接yield aa(),實(shí)際上是和直接調(diào)用aa()是一樣的,為什么,yield只是一個(gè)標(biāo)記,去執(zhí)行被標(biāo)記的代碼,那和直接調(diào)用aa()有什么區(qū)別呢?但加了星號(hào)就不一樣了,他會(huì)等aa()函數(shù)體返回。

恩。那后面的三行輸出語句我想就應(yīng)該不用再多說了,,

網(wǎng)頁名稱:node.js學(xué)習(xí)筆記之generator
文章分享:http://aaarwkj.com/article40/gdedeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版網(wǎng)站建設(shè)、域名注冊(cè)、網(wǎng)站排名、動(dòng)態(tài)網(wǎng)站、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
日本经典三级视频在线观看 | 精品久久久久久久中文字幕| 国产b片免费在线观看| 日本少妇人妻一区二区| 在线观看亚洲毛片网站| 2020年最新国产三级网站| 国产精品亚洲精品日韩在线| 亚洲国产av永久精品成人| 欧美一区二区三区日| 欧美激情欧美狂野欧美精品| 亚洲精品免费一区二区三区| 在线观看亚洲激情av| 中文字幕乱码熟女人妻视频| 午夜在线成人免费观看| 日本特黄特色三级在线观看| 亚洲av毛片免费在线| 九九在线视频免费观看精彩| 人妻少妇偷人精品免费看| 精品欧美熟妇高潮喷水特黄| 国产精品久久久天美传媒| 亚洲欧洲成熟熟女妇专区乱| 中文字幕一区二区三区精彩视频| 中文字幕精品一区二区三区精品 | 欧美日韩视频在线第一页| 日韩精品一区二区国产| 97资源在线公开视频| 日本av天堂中文字幕| 人妻少妇久久中文字幕久久| 麻豆乱淫一区二区三爱免费| 久久精品国产亚洲av高清大结局| 免费成人激情在线电影| 亚洲精品日本一区二区| 日日爱欧美精品亚洲成| 日韩精品一区二区91| 亚洲欧洲成熟熟女妇专区乱| 国产18成人午夜视频在线观看 | 在线观看高清欧美国产视频| 中文字幕国产精品一区二| 熟女熟妇乱女乱妇综合网| 一区二区视频精品在线观看| 亚洲一区二区视频在线观看免费|