摘要:異步函數(shù)是和的組合,基本上,它們是對(duì)的更高級(jí)別的抽象。引入的原因它們降低了對(duì)一些固定語(yǔ)法樣板的要求,打破了鏈?zhǔn)讲荒芮袛噫準(zhǔn)降南拗啤R雭?lái)解決著名的回調(diào)地獄問(wèn)題,但是因?yàn)樗麄冏陨淼膹?fù)雜性,引入了更復(fù)雜的語(yǔ)法。
1、簡(jiǎn)介
2、引入 async/await 的原因需先了解 Promise 【鏈接地址】
JavaScript 中的異步函數(shù)方法。
JavaScript 在很短的時(shí)間內(nèi)從回調(diào)演變?yōu)?Promises ,從 ES2017(ES8) 開(kāi)始,使用 async/await 語(yǔ)法讓異步 JavaScript 變得更簡(jiǎn)單。
async(異步) 函數(shù)是 promises 和 generator 的組合,基本上,它們是對(duì) promises 的更高級(jí)別的抽象。
注意:async/await 基于 promises。
2、原理它們降低了 promises 對(duì)一些固定語(yǔ)法樣板的要求,打破了鏈?zhǔn)?promise “不能切斷鏈?zhǔn)健钡南拗啤?/p>
在 ES2015 中引入 Promise 時(shí),它們旨在解決異步代碼的問(wèn)題,并且他們確實(shí)做到了,但在 ES2015 和 ES2017 的兩年中,人們發(fā)現(xiàn)很明顯 promises 不是最終的解決方案。
引入 Promises 來(lái)解決著名的回調(diào)地獄問(wèn)題,但是因?yàn)樗麄冏陨淼膹?fù)雜性,引入了更復(fù)雜的語(yǔ)法。
它們是良好的原語(yǔ),可以向開(kāi)發(fā)人員公開(kāi)更好的語(yǔ)法,所以當(dāng)時(shí)機(jī)成熟時(shí),我們就有了 異步函數(shù)(async functions)。
它們使代碼看起來(lái)像是同步,但它在后臺(tái)是異步和非阻塞的。
async(異步) 函數(shù)返回一個(gè) promise,如下例1所示:
const doSomethingAsync = () => { return new Promise((resolve) => { setTimeout(() => resolve("I did something"), 3000) }) }3、未寫完,待續(xù)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/104912.html
摘要:本身就是的語(yǔ)法糖。類似于后面代碼會(huì)等內(nèi)部代碼全部完成后再執(zhí)行打印結(jié)果操作符用于等待一個(gè)對(duì)象。它只能在異步函數(shù)中使用。參考附在版本位中是可以直接使用的。持續(xù)更新中來(lái)點(diǎn)顆吧 async await本身就是promise + generator的語(yǔ)法糖。 本文主要講述以下內(nèi)容 async awiat 實(shí)質(zhì) async await 主要特性 async await 實(shí)質(zhì) 下面使用 pro...
摘要:本身就是的語(yǔ)法糖。類似于后面代碼會(huì)等內(nèi)部代碼全部完成后再執(zhí)行打印結(jié)果操作符用于等待一個(gè)對(duì)象。它只能在異步函數(shù)中使用。參考附在版本位中是可以直接使用的。持續(xù)更新中來(lái)點(diǎn)顆吧 async await本身就是promise + generator的語(yǔ)法糖。 本文主要講述以下內(nèi)容 async awiat 實(shí)質(zhì) async await 主要特性 async await 實(shí)質(zhì) 下面使用 pro...
摘要:本身就是的語(yǔ)法糖。類似于后面代碼會(huì)等內(nèi)部代碼全部完成后再執(zhí)行打印結(jié)果操作符用于等待一個(gè)對(duì)象。它只能在異步函數(shù)中使用。參考附在版本位中是可以直接使用的。持續(xù)更新中來(lái)點(diǎn)顆吧 async await本身就是promise + generator的語(yǔ)法糖。 本文主要講述以下內(nèi)容 async awiat 實(shí)質(zhì) async await 主要特性 async await 實(shí)質(zhì) 下面使用 pro...
摘要:怎么處理返回值輸出結(jié)果從結(jié)果中可以看到函數(shù)返回的是一個(gè)對(duì)象,如果在函數(shù)中一個(gè)直接量,會(huì)把這個(gè)直接量通過(guò)封裝成對(duì)象。如果函數(shù)沒(méi)有返回值結(jié)果結(jié)果返回。 隨著async/await正式納入ES7標(biāo)準(zhǔn),越來(lái)越多的人開(kāi)始研究據(jù)說(shuō)是異步編程終級(jí)解決方案的 async/await。但是很多人對(duì)這個(gè)方法中內(nèi)部怎么執(zhí)行的還不是很了解,本文是我看了一遍技術(shù)博客理解 JavaScript 的 async/a...
閱讀 2587·2021-11-18 10:02
閱讀 2087·2021-11-09 09:45
閱讀 2629·2021-09-26 09:47
閱讀 1147·2021-07-23 10:26
閱讀 1146·2019-08-30 15:47
閱讀 3433·2019-08-30 15:44
閱讀 1051·2019-08-30 15:43
閱讀 951·2019-08-29 13:50