国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Generator函數(shù)與async函數(shù)對(duì)比

Winer / 1313人閱讀

摘要:函數(shù)與函數(shù)對(duì)比函數(shù)函數(shù)是提供的異步解決方案,與普通函數(shù)有很大的不同特征在關(guān)鍵字后面跟一個(gè)號(hào)在函數(shù)體內(nèi)部使用表達(dá)式作為一個(gè)狀態(tài)函數(shù)返回一個(gè)遍歷器,可通過方法遍歷每個(gè)狀態(tài)用法執(zhí)行并不立刻執(zhí)行,返回一個(gè)遍歷器,遍歷器通過調(diào)用或者執(zhí)行下一個(gè)狀態(tài)捕獲

Generator函數(shù)與async函數(shù)對(duì)比 Generator函數(shù):

Generator函數(shù)是ES2015提供的異步解決方案,與普通函數(shù)有很大的不同;

特征:

在function關(guān)鍵字后面跟一個(gè)(*)號(hào);

在函數(shù)體內(nèi)部使用yield表達(dá)式作為一個(gè)狀態(tài);

Generator函數(shù)返回一個(gè)遍歷器,可通過for……of方法遍歷每個(gè)狀態(tài);

用法:

執(zhí)行Generator并不立刻執(zhí)行,返回一個(gè)遍歷器,遍歷器通過調(diào)用next()、throw()或者return()執(zhí)行下一個(gè)狀態(tài)、捕獲錯(cuò)誤或者結(jié)束遍歷器;

async函數(shù):

async函數(shù)是ES2017提供的異步函數(shù)語法,是generator的語法糖,但是用法上與Generator函數(shù)還是有很大不同;

特征:

在function關(guān)鍵字前面跟一個(gè)async關(guān)鍵字;

在函數(shù)體內(nèi)部使用await表達(dá)式;

async函數(shù)返回一個(gè)promise對(duì)象;

用法:

執(zhí)行async函數(shù)會(huì)立刻執(zhí)行,和普通函數(shù)一樣,但是返回一個(gè)promise對(duì)象;

兩者對(duì)比:

Generator 出現(xiàn)在ES2015中,async 出現(xiàn)在ES2017中,async 是 Generator 的語法糖;

執(zhí)行方式不同,Generator 執(zhí)行需要使用執(zhí)行器(next()等方法);async 函數(shù)自帶執(zhí)行器,與普通函數(shù)的執(zhí)行一樣;

async 的語法語義更加清楚,async 表示異步,await 表示等待;而 Generator 函數(shù)的(*)號(hào)和 yield 的語義就沒那么直接了;

Generator 中 yield 后面只能跟 Thunk 函數(shù)或 Promise 對(duì)象;而 async 函數(shù)中 await 后面可以是 promise 對(duì)象或者原始類型的值(會(huì)自動(dòng)轉(zhuǎn)為立即resovle的promise對(duì)象);

返回值不同,Generator 返回遍歷器,相比于 async 返回 promise 對(duì)象操作更加麻煩。

參考:

ECMAScript 6入門

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/103174.html

相關(guān)文章

  • 淺談async·await

    摘要:在語言中,函數(shù)替換的不是表達(dá)式,而是多參數(shù)函數(shù),將其替換成一個(gè)只接受回調(diào)函數(shù)作為參數(shù)的單參數(shù)函數(shù)。為什么里面必須使用函數(shù)呢,因?yàn)槲覀冃枰_保傳入的值只有一個(gè),利用其回調(diào)函數(shù),來進(jìn)行遞歸自動(dòng)控制函數(shù)的流程,接收和交還程序的執(zhí)行權(quán) 前言 這篇文章主要是梳理一下自己對(duì)阮一峰大神寫的關(guān)于async/await文章,有寫得不對(duì)的地方以及理解得不對(duì)的地方,各位大佬請(qǐng)指錯(cuò)! 對(duì)比 簡(jiǎn)單對(duì)比傳統(tǒng)異步,...

    Magicer 評(píng)論0 收藏0
  • 理解 async/await

    摘要:而函數(shù)的命令后面則可以是或者原始類型的值,,,但這時(shí)等同于同步操作返回值是。拋出的錯(cuò)誤而會(huì)被方法回調(diào)函數(shù)接收到。 ES7 提出的async 函數(shù),終于讓 JavaScript 對(duì)于異步操作有了終極解決方案。No more callback hell。async 函數(shù)是 Generator 函數(shù)的語法糖。使用 關(guān)鍵字 async 來表示,在函數(shù)內(nèi)部使用 await 來表示異步。想較于 G...

    kid143 評(píng)論0 收藏0
  • JavaScript:從Callback到Async的發(fā)展過程——實(shí)例演示

    摘要:回調(diào)函數(shù)回調(diào)函數(shù)是將一個(gè)函數(shù)作為參數(shù),傳遞給另一個(gè)函數(shù),然后在外部函數(shù)中調(diào)用該函數(shù)來完成某種例程或動(dòng)作。案例源碼回調(diào)函數(shù)處理都是基于的發(fā)展利用方法自動(dòng)迭代 閱讀時(shí)間:12 minutes文章類型:理論知識(shí) & 案例演示案例需求:用JavaScript實(shí)現(xiàn),3個(gè)小球先后運(yùn)動(dòng),完成接力賽跑案例源碼:見文章最后 引言: 前端開發(fā)中,異步處理必不可少;過去,我們經(jīng)常用回調(diào)函數(shù)來完成異步處理,...

    levius 評(píng)論0 收藏0
  • JavaScript的async 的學(xué)習(xí)

    摘要:函數(shù)內(nèi)部語句返回的值,會(huì)成為方法回調(diào)函數(shù)的參數(shù)。也就是說,只有函數(shù)內(nèi)部的異步操作執(zhí)行完,才會(huì)執(zhí)行方法指定的回調(diào)函數(shù)。命令后面的對(duì)象如果變?yōu)闋顟B(tài),則的參數(shù)會(huì)被方法的回調(diào)函數(shù)接收到。 async 函數(shù) ES2017 標(biāo)準(zhǔn)引入了 async 函數(shù),使得異步操作變得更加方便,就是 Generator 函數(shù)的語法糖。對(duì)比一下: const fs = require(fs); const rea...

    Leo_chen 評(píng)論0 收藏0
  • Generator函數(shù)

    摘要:語法上,首先可以把它理解成,函數(shù)是一個(gè)狀態(tài)機(jī),封裝了多個(gè)內(nèi)部狀態(tài)。返回的遍歷器對(duì)象,可以依次遍歷函數(shù)內(nèi)部的每一個(gè)狀態(tài)。 寫在前面: 這一篇是關(guān)于ES6中生成器函數(shù)相關(guān)總結(jié)和理解... Generator函數(shù)的定義 在阮一峰老師的書中的說法是: Generator 函數(shù)有多種理解角度。語法上,首先可以把它理解成,Generator 函數(shù)是一個(gè)狀態(tài)機(jī),封裝了多個(gè)內(nèi)部狀態(tài)。執(zhí)行 Gener...

    yagami 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<