av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

關于JavaScript中異步/等待的用法與理解

瀏覽:23日期:2023-06-15 09:02:40

昨天更新的是“JavaScript中的Promise使用詳解”,其實也就是說了下基本用法和自己對Promise的理解,可能有錯誤之處,也歡迎指出。今天就說一說“JavaScript中的async/await的用法和理解”

JavaScript中異步/等待的用法和理解

編程語言中任意一個關鍵字都是有意義的,我們先從字面意思來理解。

1.async

async 是“異步”的簡寫,帶async關鍵字的函數,是聲明異步函數,返回值是promise對象,如果async關鍵字函數返回的不是promise,會自動用Promise.resolve()包裝。

async function test() { return ’hello word’}test();

運行上面代碼返回結果如下

2.await

await 可以認為是 async wait 的簡寫。所以應該很好理解 async 用于申明一個 function 是異步的,而 await 用于等待一個異步方法執行完成。

如果它等到的不是一個 Promise 對象,那 await 表達式的運算結果就是它等到的東西。

如果它等到的是一個 Promise 對象,await 就忙起來了,它會阻塞后面的代碼,等著 Promise 對象 resolve,然后得到 resolve 的值,作為 await 表達式的運算結果。

我們看下面段代碼

function test() { return new Promise(resolve => { setTimeout(() => resolve('hello word'), 2000); });}const result = test();console.log(result.then((val)=>{console.log(val)}));console.log(’結束’)

我們以編輯器編輯器代碼執行順序來理下,

1.首先我們定義一個方法,這個方法返回Promise 對象,.then()函數兩秒鐘后返回調用成功。

2.接下來實例化test()函數。

3.調用result對象的then()函數,接收返回值,注意,這里是異步的

4.打印日志結束

我們運行代碼,看結果

看到先打印“結束”,然后才打印的“hello word”,這就是異步,我們改造下代碼

function test() { return new Promise(resolve => { setTimeout(() => resolve('hello word'), 2000); });}const result = await test();console.log(result);console.log(’結束’)

用await關鍵字接test()函數,看這次返回結果

我們發現先打印“hello word”,然后才打印“結束”,由于test()造成的阻塞,console.log(‘結束’)會等到兩秒后執行。

再來說下優缺點

優點:相對于promise,async/await處理 then 的調用鏈,代碼要清晰很多,幾乎和同步代碼一樣。

缺點:濫用 await 可能會導致性能問題,因為 await 會阻塞代碼。

總結

到此這篇關于JavaScript中異步/等待的用法與理解的文章就介紹到這了,更多相關JavaScript異步/等待的用法內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 黄色片在线看 | 日韩精品久久一区二区三区 | 久久久噜噜噜www成人网 | 亚洲xx在线| 91麻豆产精品久久久久久 | 国产精品久久久久9999鸭 | 国产精品一区二区视频 | 巨大黑人极品videos精品 | 日本精品在线一区 | 色桃网 | 欧美jizzhd精品欧美巨大免费 | 午夜精品网站 | 国产精品视频在 | 久久精品国产一区 | 欧美性a视频| 波多野结衣在线观看一区二区三区 | 久久国产区 | 欧美极品一区二区 | 久久精品免费一区二区三 | 日韩在线免费视频 | 韩国毛片一区二区三区 | 日韩av免费看 | 日韩毛片 | 国产精品区二区三区日本 | 久久久青草婷婷精品综合日韩 | 在线一区二区三区 | 亚洲欧美综合网 | 天堂在线1| 91在线免费视频 | 99亚洲精品 | 亚洲成人精品国产 | 久久久久久中文字幕 | 欧美日日 | 亚洲一区免费在线 | 亚洲国产精品日本 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 999精品视频 | 精品亚洲一区二区三区 | 久草欧美| 美女一级a毛片免费观看97 | 欧美6一10sex性hd |