async/await語法總結


        console.dir(Promise);

        const p = new Promise((resolve, reject) => {
            reject("失敗");
            resolve("成功!");
        })

        async function getA(){
            // await后是一個Promise,如果不是也會默認轉為一個Promise
            // 如果Promise執行結果為resolve,則await返回resolve參數,await下面的代碼都會執行,且async函數后的then中返回的是async函數return后的值
            // 如果Promise執行結果為reject,則await無返回值,await下面的代碼不會執行,且async函數后的catch會捕獲到reject中的值
            const a = await p;
            console.log(a);
            console.log("這里是a之后的代碼");
            return 666;
        }

        getA().then((res)=>{
            console.log(res);
        }).catch((error)=>{
            console.log(error);
        });

  

1、async函數總是會返回一個promise

返回一個promise有三種情形:

1)async函數中顯示的return一個promise;

2)如果return的是一個具體值,則會轉換為一個resolve為該值的promise;

3)其它則會轉換為一個resolve為undefined的promise。

2、await后面跟什么?

1)promise,此時如果promise執行結果為resolve,則await返回resolve中的值,如果promise執行結果為reject,則await無返回值;

2)具體值,此時await返回的就是該值。

3、錯誤處理:

當await后的promise返回的是reject時會報錯,報錯后不會繼續往下執行,除非我們進行以下幾種錯誤處理方式:

1)直接在await處進行錯誤處理,但await返回undefined,async函數再繼續往下執行;

2)在async函數執行處添加錯誤處理,則碰到第一個await后的promise返回reject時會進行錯誤處理,但async函數不會繼續往下執行;

3)將async中的Promise操作都放在try{}catch{}中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM