1、簡單來講就是把函式變為非同步操作的
async function demo() { let result = Math.random(); console.log(result); }
2、async的第一個作用就是可以用then,執行結束再進行別的操作
demo().then(val => { console.log(val);// 123 });
3、async的下一個操作就是要結合await進行的操作,簡單來講就是必須等到await結束才進行下面的操作
function sleep(second) { return new Promise((resolve, reject) => { setTimeout(() => { resolve(' enough sleep~'); }, second); }) } function normalFunc() { console.log('normalFunc'); } async function awaitDemo() { await normalFunc(); console.log('something, ~~'); let result = await sleep(2000); console.log(result);// 兩秒之後會被列印出來 } awaitDemo();
4、async的並行操作,因為使用await的話只會一步一步的執行,如果要多個共同完成才執行的操作要用到await Promise.all([a,b,c])
async function correctDemo() { let p1 = sleep(1000); let p2 = sleep(1000); let p3 = sleep(1000); await Promise.all([p1, p2, p3]); console.log('clear the loading~'); } correctDemo();// clear the loading~