es6,async简单总结

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~

  

猜你喜欢

转载自www.cnblogs.com/huangqiming/p/9436797.html