摘要:函數(shù)與函數(shù)對比函數(shù)函數(shù)是提供的異步解決方案,與普通函數(shù)有很大的不同特征在關鍵字后面跟一個號在函數(shù)體內部使用表達式作為一個狀態(tài)函數(shù)返回一個遍歷器,可通過方法遍歷每個狀態(tài)用法執(zhí)行并不立刻執(zhí)行,返回一個遍歷器,遍歷器通過調用或者執(zhí)行下一個狀態(tài)捕獲
Generator函數(shù)與async函數(shù)對比 Generator函數(shù):
Generator函數(shù)是ES2015提供的異步解決方案,與普通函數(shù)有很大的不同;
特征:
在function關鍵字后面跟一個(*)號;
在函數(shù)體內部使用yield表達式作為一個狀態(tài);
Generator函數(shù)返回一個遍歷器,可通過for……of方法遍歷每個狀態(tài);
用法:
執(zhí)行Generator并不立刻執(zhí)行,返回一個遍歷器,遍歷器通過調用next()、throw()或者return()執(zhí)行下一個狀態(tài)、捕獲錯誤或者結束遍歷器;
async函數(shù):async函數(shù)是ES2017提供的異步函數(shù)語法,是generator的語法糖,但是用法上與Generator函數(shù)還是有很大不同;
特征:
在function關鍵字前面跟一個async關鍵字;
在函數(shù)體內部使用await表達式;
async函數(shù)返回一個promise對象;
用法:
執(zhí)行async函數(shù)會立刻執(zhí)行,和普通函數(shù)一樣,但是返回一個promise對象;
兩者對比: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ù)的(*)號和 yield 的語義就沒那么直接了;
Generator 中 yield 后面只能跟 Thunk 函數(shù)或 Promise 對象;而 async 函數(shù)中 await 后面可以是 promise 對象或者原始類型的值(會自動轉為立即resovle的promise對象);
返回值不同,Generator 返回遍歷器,相比于 async 返回 promise 對象操作更加麻煩。
參考:
ECMAScript 6入門
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/103174.html
摘要:在語言中,函數(shù)替換的不是表達式,而是多參數(shù)函數(shù),將其替換成一個只接受回調函數(shù)作為參數(shù)的單參數(shù)函數(shù)。為什么里面必須使用函數(shù)呢,因為我們需要確保傳入的值只有一個,利用其回調函數(shù),來進行遞歸自動控制函數(shù)的流程,接收和交還程序的執(zhí)行權 前言 這篇文章主要是梳理一下自己對阮一峰大神寫的關于async/await文章,有寫得不對的地方以及理解得不對的地方,各位大佬請指錯! 對比 簡單對比傳統(tǒng)異步,...
摘要:而函數(shù)的命令后面則可以是或者原始類型的值,,,但這時等同于同步操作返回值是。拋出的錯誤而會被方法回調函數(shù)接收到。 ES7 提出的async 函數(shù),終于讓 JavaScript 對于異步操作有了終極解決方案。No more callback hell。async 函數(shù)是 Generator 函數(shù)的語法糖。使用 關鍵字 async 來表示,在函數(shù)內部使用 await 來表示異步。想較于 G...
摘要:回調函數(shù)回調函數(shù)是將一個函數(shù)作為參數(shù),傳遞給另一個函數(shù),然后在外部函數(shù)中調用該函數(shù)來完成某種例程或動作。案例源碼回調函數(shù)處理都是基于的發(fā)展利用方法自動迭代 閱讀時間:12 minutes文章類型:理論知識 & 案例演示案例需求:用JavaScript實現(xiàn),3個小球先后運動,完成接力賽跑案例源碼:見文章最后 引言: 前端開發(fā)中,異步處理必不可少;過去,我們經(jīng)常用回調函數(shù)來完成異步處理,...
摘要:函數(shù)內部語句返回的值,會成為方法回調函數(shù)的參數(shù)。也就是說,只有函數(shù)內部的異步操作執(zhí)行完,才會執(zhí)行方法指定的回調函數(shù)。命令后面的對象如果變?yōu)闋顟B(tài),則的參數(shù)會被方法的回調函數(shù)接收到。 async 函數(shù) ES2017 標準引入了 async 函數(shù),使得異步操作變得更加方便,就是 Generator 函數(shù)的語法糖。對比一下: const fs = require(fs); const rea...
摘要:語法上,首先可以把它理解成,函數(shù)是一個狀態(tài)機,封裝了多個內部狀態(tài)。返回的遍歷器對象,可以依次遍歷函數(shù)內部的每一個狀態(tài)。 寫在前面: 這一篇是關于ES6中生成器函數(shù)相關總結和理解... Generator函數(shù)的定義 在阮一峰老師的書中的說法是: Generator 函數(shù)有多種理解角度。語法上,首先可以把它理解成,Generator 函數(shù)是一個狀態(tài)機,封裝了多個內部狀態(tài)。執(zhí)行 Gener...
閱讀 1382·2023-04-25 23:47
閱讀 951·2021-11-23 09:51
閱讀 4552·2021-09-26 10:17
閱讀 3761·2021-09-10 11:19
閱讀 3285·2021-09-06 15:10
閱讀 3572·2019-08-30 12:49
閱讀 2463·2019-08-29 13:20
閱讀 1764·2019-08-28 18:14