一眼看懂promise與async await的區別

// promise方法
    let p1 = new Promise((resolve,reject) => {
        setTimeout(() => {
            resolve('我是p1')
        },4000)
    })
    let p2 = new Promise((resolve,reject) => {
        setTimeout(() => {
            resolve('我是p2')
        },200)
    })
    let p3 = new Promise((resolve,reject) => {
        setTimeout(() => {
            resolve('我是p3')
        },200)
    })
    // 想讓p1完成後再執行P2再執行P3
    // 數量太多隻能循環嵌套
    p1.then((res) => {
        console.log(res);
        p2.then((res) => {
            console.log(res);
            p3.then((res) => {
                console.log(res);
            })
        })
    })
    
    



    // async  await語法糖
    let a1=()=>{
        return new Promise((resolve,reject) => {
            setTimeout(() => {
                resolve('我是a1')
            },4000)
        })
    } 
    let a2=()=>{
        return new Promise((resolve,reject) => {
            setTimeout(() => {
                resolve('我是a2')
            },40)
        })
    } 
    let a3=()=>{
        return new Promise((resolve,reject) => {
            setTimeout(() => {
                resolve('我是a3')
            },40)
        })
    } 
    // 想讓a1完成後再執行a2再執行a3
    //能避免回調
    async function asy(){
        await a1().then((res) => {console.log(res)});
        await a2().then((res) => {console.log(res)});;
        await a3().then((res) => {console.log(res)});;
    }
    asy();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章