ES6之a(chǎn)sync函數(shù)

? ? ?async函數(shù),類似generator函數(shù)都是為了方便于異步操作态鳖,而且表現(xiàn)形式也很類似只是將*變成 async篙议,yield變成了await。但是async函數(shù)執(zhí)行不像generator函數(shù)需要next诚啃、throw淮摔、return等手動(dòng)控制執(zhí)行,它是跟正常函數(shù)一樣的執(zhí)行始赎;async函數(shù)的表現(xiàn)比generator函數(shù)表現(xiàn)的更明確和橙,更方便于異步操作(async包含異步操作,await后的表達(dá)式需要等待結(jié)果)造垛;async函數(shù)中的適用性更廣泛魔招,await后面跟的表達(dá)式比yield更廣泛(雖然await之后的東西都會(huì)轉(zhuǎn)化為Promise對(duì)象);async函數(shù)返回的是一個(gè)Promise對(duì)象generator函數(shù)返回的是一個(gè)Iterator對(duì)象五辽。

? ? ? async函數(shù)返回的是一個(gè)Promise對(duì)象,所以一切ES6上的Promise的操作都可以適用于這個(gè)办斑,而且它的內(nèi)部機(jī)制是遇到await就先返回執(zhí)行,執(zhí)行結(jié)束后就接著執(zhí)行函數(shù)體內(nèi)后面的函數(shù)杆逗,類似jquery中ajax的async=false俄周,具體可以寫下代碼理解下,async函數(shù)內(nèi)部拋出錯(cuò)誤會(huì)直接將Promise的狀態(tài)變成rejected髓迎,拋出的錯(cuò)誤會(huì)被catch捕捉到回調(diào)函數(shù)中峦朗。async函數(shù)除了return或者throw之外只有所有await函數(shù)執(zhí)行完,狀態(tài)才會(huì)發(fā)生改變排龄,才會(huì)去執(zhí)行then方法波势,注意:只要await后面的Promise對(duì)象變成reject翎朱,整個(gè)async函數(shù)都會(huì)中止執(zhí)行除非將它放到try..catch中或者Promise自帶的catch;await只能存在在async函數(shù)中尺铣,否則會(huì)報(bào)錯(cuò)拴曲;async函數(shù)中兩個(gè)相互獨(dú)立的異步操作建議一次執(zhí)行。

? ? ? async函數(shù)的執(zhí)行原理:將Generator函數(shù)和自動(dòng)執(zhí)行器包裝成一個(gè)函數(shù)凛忿。異步遍歷器為異步操作提供原生的遍歷器接口澈灼,可以通過調(diào)用next方法返回一個(gè)Promise對(duì)象,resolve之后的參數(shù)具有value和done的屬性。for..of..遍歷同步遍歷器店溢,for ..await..of遍歷異步遍歷器叁熔。

? ? ? ?剩下的就是一些對(duì)異步遍歷器的表現(xiàn)形式,不想寫了床牧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荣回,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子戈咳,更是在濱河造成了極大的恐慌心软,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件著蛙,死亡現(xiàn)場(chǎng)離奇詭異删铃,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)踏堡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門猎唁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人暂吉,你說我怎么就攤上這事《谢迹” “怎么了慕的?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)挤渔。 經(jīng)常有香客問我肮街,道長(zhǎng),這世上最難降的妖魔是什么判导? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任嫉父,我火速辦了婚禮,結(jié)果婚禮上眼刃,老公的妹妹穿的比我還像新娘绕辖。我一直安慰自己,他們只是感情好擂红,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布仪际。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪树碱。 梳的紋絲不亂的頭發(fā)上肯适,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音成榜,去河邊找鬼框舔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛赎婚,可吹牛的內(nèi)容都是我干的刘绣。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼惑淳,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼额港!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起歧焦,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤移斩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后绢馍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體向瓷,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年舰涌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了猖任。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瓷耙,死狀恐怖朱躺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情搁痛,我是刑警寧澤长搀,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站鸡典,受9級(jí)特大地震影響源请,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜彻况,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一谁尸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧纽甘,春花似錦良蛮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咬展。三九已至,卻和暖如春瞒斩,著一層夾襖步出監(jiān)牢的瞬間破婆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工胸囱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留祷舀,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓烹笔,卻偏偏與公主長(zhǎng)得像裳扯,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子谤职,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 異步編程對(duì)JavaScript語言太重要饰豺。Javascript語言的執(zhí)行環(huán)境是“單線程”的,如果沒有異步編程允蜈,根本...
    呼呼哥閱讀 7,302評(píng)論 5 22
  • 文章內(nèi)容轉(zhuǎn)自阮一峰老師博客.語法學(xué)習(xí) 1.返回 Promise 對(duì)象 async函數(shù)返回一個(gè)Promise 對(duì)象冤吨。...
    四月天__閱讀 413評(píng)論 0 0
  • 簡(jiǎn)單介紹下這幾個(gè)的關(guān)系為方便起見 用以下代碼為例簡(jiǎn)單介紹下這幾個(gè)東西的關(guān)系, async 在函數(shù)聲明前使用asyn...
    _我和你一樣閱讀 21,218評(píng)論 1 24
  • 弄懂js異步 講異步之前饶套,我們必須掌握一個(gè)基礎(chǔ)知識(shí)-event-loop漩蟆。 我們知道JavaScript的一大特點(diǎn)...
    DCbryant閱讀 2,708評(píng)論 0 5
  • 在此處先列下本篇文章的主要內(nèi)容 簡(jiǎn)介 next方法的參數(shù) for...of循環(huán) Generator.prototy...
    醉生夢(mèng)死閱讀 1,439評(píng)論 3 8