您好,登錄后才能下訂單哦!
這篇文章主要講解了ES6 async、await的基本使用方法的實(shí)例解析,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。
本文實(shí)例講述了ES6 async、await的基本使用方法。分享給大家供大家參考,具體如下:
async是異步編程的最新標(biāo)準(zhǔn),我們來(lái)看看async如何使用
async function fn () { return 'abc' } console.log(fn()); // Promise { 'abc' } fn().then(res => { console.log(res); // "abc" })
async作為關(guān)鍵字放在函數(shù)前面,讓同步的函數(shù)成為異步函數(shù),不關(guān)函數(shù)里返回什么,打印出還是promise,說(shuō)明async還是基于promise的,async的異步方式還是比promise更加簡(jiǎn)單優(yōu)雅的。
// 這里模擬一個(gè)耗時(shí)操作 function asyncFunc() { return new Promise( resolve => { setTimeout(() => { resolve(100) }, 1000); }) } async function fn () { let a = await asyncFunc(); console.log(a); // 100 } fn()
一秒后打印出了100,async和await搭配使用,await可以接收異步函數(shù),整個(gè)過(guò)程看上去有點(diǎn)像同步代碼,但其實(shí)是異步操作。
我們?cè)趂n()上加上一行代碼
async function fn () { let a = await asyncFunc(); console.log(a); // 100 console.log(200); // 200 }
執(zhí)行上面代碼看到兩次都是在暫停一秒打印出來(lái)的,這說(shuō)明await的后面如果是promise(耗時(shí)操作),它會(huì)阻塞整個(gè)函數(shù),下面的代碼不會(huì)執(zhí)行。
看完上述內(nèi)容,是不是對(duì)ES6 async、await的基本使用方法的實(shí)例解析有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。