Promise异步执行 async/await

function getPromise(fileName) {
    let p = new Promise((resolve, reject) => {
        setTimeout(()=> {
            resolve(fileName);
        },1000)
    });
    return p;
};

//2.解决需求: 要先读a, 读完a后读b, 读完b后读c.

// async和await异步函数 :  这两个关键字只能用于函数, 所以用的时候一定要放在函数里面用

/*
async关键字:  修饰函数。  表示这个函数内部有异步操作。
await关键字:  等待异步执行完毕。
    (1)await只能用于被async修饰的函数中。
        只有当await后面的异步操作执行完毕后,才会继续执行后面代码
    (2)await 后面 只能是promise对象
*/

const readFile = async () => {
    let data1 = await getPromise('a')
    console.log(data1)
    console.log(55)
    let data2 = await getPromise('b')
    console.log(data2)
    //async异步函数的错误信息要用try-catch来捕捉
    try {
        let data3 = await getPromise('c')
        console.log(data3)
    } catch (err) {
        console.log(err)
    }
}
readFile()

输出结果为:

a
55
b
c

你可能感兴趣的:(Promise异步执行 async/await)