ES6 async、await的基本使用方法示例
本文實例講述了ES6 async、await的基本使用方法。分享給大家供大家參考,具體如下:
async是異步編程的最新標(biāo)準(zhǔn),我們來看看async如何使用
1.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,說明async還是基于promise的,async的異步方式還是比promise更加簡單優(yōu)雅的。
2.await的簡單使用
// 這里模擬一個耗時操作
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ù),整個過程看上去有點像同步代碼,但其實是異步操作。
我們在fn()上加上一行代碼
async function fn () {
let a = await asyncFunc();
console.log(a); // 100
console.log(200); // 200
}
執(zhí)行上面代碼看到兩次都是在暫停一秒打印出來的,這說明await的后面如果是promise(耗時操作),它會阻塞整個函數(shù),下面的代碼不會執(zhí)行。
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
動態(tài)的創(chuàng)建一個元素createElement及刪除一個元素
微信小程序 scroll-view 實現(xiàn)錨點跳轉(zhuǎn)功能
深入探討JavaScript異步編程中Promise的關(guān)鍵要點
uni-app使用uploadFile上傳多張圖片的具體實現(xiàn)

