es6,async簡單總結

kimingw發表於2018-08-07

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~

  

相關文章